Как можно извлечь и сохранить в таблицу адресную информацию (например, "Саратовская обл, р-н Перелюбский в 0.5 км юго-западнее с.Перелюб и в 1 км юго-западнее х.Бригадировка"), находящуюся в элементе с классом "expanding-box_content", с веб-сайта росреестра, используя Python и библиотеки requests и BeautifulSoup?
Для того чтобы извлечь информацию с сайта Росреестра и сохранить ее в таблицу, можно использовать следующий код на Python с использованием библиотек requests и BeautifulSoup:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://rosreestr.ru/wps/portal/cc_pr_viewer?'
params = {
'uidparam': 'corner'
}
response = requests.get(url, params=params)
soup = BeautifulSoup(response.content, 'html.parser')
address_info = soup.find('div', class_='expanding-box_content').text
print(address_info)
```
Этот код отправит запрос на указанный URL с указанными параметрами, получит содержимое страницы, найдет элемент с классом 'expanding-box_content' и извлечет текст из него, содержащий адресную информацию. Далее эту информацию можно сохранить в таблицу или обработать как необходимо.
для безграмотных парсеров поиск росреестра: <br/> <br/> <pre><code>https://pkk.rosreestr.ru/api/features/?text=52.929979122449325+87.97534995053527&tolerance=2&types=[2,3,4,1,21,5,10]</code></pre> <br/> <br/> вернет он: <br/> <pre><code class="javascript">{
"total": 5,
"results": [
{
"sort": 42120102004,
"type": 2,
"center": {
"y": 6970386.423234693,
"x": 9794346.776440643
},
"attrs": {
"cn": "42:12:0102004",
"id": "42:12:102004"
},
"extent": {
"xmax": 9795238.11208436,
"ymin": 6969855.0191011,
"ymax": 6971012.594670494,
"xmin": 9793163.65570717
}
},
{
"sort": 4212,
"type": 3,
"center": {
"y": 6950818.390114815,
"x": 9810172.497224698
},
"attrs": {
"cn": "42:12",
"id": "42:12",
"name": "Таштагольский"
},
"extent": {
"xmax": 9934125.20280487,
"ymin": 6829546.777098134,
"ymax": 7049761.803853536,
"xmin": 9674999.04333556
}
},
{
"sort": 42,
"type": 4,
"center": {
"y": 7328079.667631133,
"x": 9706880.109152177
},
"attrs": {
"cn": "42",
"id": "42",
"name": "Кемеровский"
},
"extent": {
"xmax": 9952694.29980072,
"ymin": 6829546.774971992,
"ymax": 7726492.011682568,
"xmin": 9401209.32240626
}
},
{
"sort": 4212010200400025,
"type": 1,
"center": {
"y": 6970070.760976506,
"x": 9793366.321078256
},
"attrs": {
"address": "Кемеровская область, р-н. Таштагольский, пгт. Шерегеш, ул. Лесная, д. 3",
"cn": "42:12:0102004:25",
"id": "42:12:102004:25"
},
"extent": {
"xmax": 9793403.39482761,
"ymin": 6970010.120180669,
"ymax": 6970129.685452594,
"xmin": 9793328.57189643
}
},
{
"sort": 4212010200401338,
"type": 5,
"center": {
"y": 6970067.466684912,
"x": 9793370.470713653
},
"attrs": {
"address": "Российская Федерация, Кемеровская область-Кузбасс, Таштагольский муниципальный район, Шерегешское городское поселение, пгт. Шерегеш, ул. Лесная, дом 3",
"cn": "42:12:0102004:1338",
"id": "42:12:102004:1338"
},
"extent": {
"xmax": 9793387.58929377,
"ymin": 6970050.160377153,
"ymax": 6970087.472030083,
"xmin": 9793353.0083641
}
}
]
}</code></pre> <br/> парсится такое на раз-два. <br/> <br/> надеюсь пояснять про то какое поле что значит не надо?
Правило номер ноль при парсинге: <i>при любых проблемах сохраняй на диск то, что тебе пришло в ответе от сервера</i> . <br/> То, что ты видишь в браузере - это не обязательно то же самое, что браузер получил от сайта. <br/> То, что браузер получил от сайта - это не обязательно то же самое, что requests получит от сайта. <br/> <br/> В данном случае, и requests и браузер получают в ответе вот это: <br/> <pre><code><body style="height: 100%; width:100%;"> <div id=app style="height: 100%; width:100%;"></div> <script src=js/chunk-vendors.c1d200da.js></script> <script src=js/chunk-common.adcda62e.js></script> <script src=js/chunk-esri.caf28189.js></script> <script src=js/index.ca134891.js></script> </body></code></pre> <br/> Как видишь, нужного элемента тут просто нет, потому что он создаётся динамически, через JavaScript. А BS не выполняет скрипты. <br/> <br/> Варианта только два: <br/> 1. Выяснять, каким запросом сайт подтягивает данные для этого, научиться этот запрос делать самостоятельно и вытаскивать искомые данные из полученного. Медленно и трудно на подготовительном этапе, зато потом работает сравнительно быстро... если, конечно, сайт защиту от парсинга не поставит. <br/> 2. Запускать управляемый браузер, дать ему загрузить страницу и выполнить скрипты, а потом уже искать нужные данные. Быстрое решение в плане разработки, но более медленное и ресурсоёмкое в дальнейшем использовании.