Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,245
Записей в блоге: 4

Парсинг адресов страниц сайта

23.08.2021, 01:25. Показов 1317. Ответов 0

Студворк — интернет-сервис помощи студентам
Добрый день!

Нужно получить список страниц сайта с адресами домов. Саму страницу я прочитал
Python
1
2
3
4
5
6
import requests
from bs4 import BeautifulSoup
url = 'https://www.newbalashiha.ru/address'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
quotes = soup.find_all('li')
Теперь мне нужно из HTML строк получить номер, который стоит после слова street, чтобы потом сформировать список адресов для парсинга
HTML5
1
<a href="https://www.newbalashiha.ru/address/street/1138">1-й просек</a>
Подскажите если не сложно! Пока сижу читаю информацию по этой теме

Добавлено через 1 час 42 минуты
Номера страниц скопировал из текста
Python
1
2
3
4
5
6
7
8
9
10
import requests
from bs4 import BeautifulSoup
 
url = 'https://www.newbalashiha.ru/address'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
items = soup.find_all('li')
 
for n, i in enumerate(items, start=1):
    print(i)
Прочитал адреса во фрейм
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import requests
from bs4 import BeautifulSoup
import pandas as pd
 
Streets = [1059,1138,1249,1075,1091,1121,1130,1131,1132,1133,1134,1135,1250,1076,1122,1214,1260,1060,1251,1123,1124,1062,1063,1125,1126,1127,1161,1128,1129,1467,1274,1242,1039,1065,1064,1066,1243,1045,1067,1068,1070,1071,1265,1072,1046,1026,247,1074,1073,1047,1077,1078,1079,1080,1257,1204,1361,1081,1083,1082,1084,1205,1085,1136,1086,1288,1087,1088,1089,1090,1092,1244,1094,1093,1245,1095,1096,1256,1097,1098,1284,1048,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1267,1113,1114,1115,1116,1117,1049,1255,1246,1041,1137,1261,1050,1118,1119,1120,1140,1139,1141,1142,1271,1145,1146,1144,1143,1148,1156,1266,1149,1150,1151,1258,1263,1152,1154,1247,1042,1155,1157,1044,1158,1159,1162,1163,1056,1164,1166,1167,1165,1051,1168,1052,1262,1169,1170,1171,1172,1173,1174,1175,1176,1426,1177,1178,1185,245,1180,1181,1179,1182,1248,1183,1184,1186,1057,10129,1187,1188,1189,1190,1191,1192,1193,1194,1053,1432,1196,86,1197,1198,1199,1054,1200,1201,1254,1253,1252,1202,1203,1040,1206,1207,1208,1209,1210,1211,1160,1212,1213,1215,1195,1264,1216,1217,1259,1218,1219,1268,68,1220,1221,1222,1223,1224,1225,1043,1226,1425,1227,1230,1229,1069,1231,1232,1237,1233,1235,1234,1238,1055,1287,1058,1239,1240,1241,1358,1341,1339,1342,1340,1289,1455,1364,120,1343,1427,1466,1403,1456,1147,1153,1424,1442,1347,1384,1363,1404,1422,1366,1385,1383,1390,1478,1484]
df = pd.DataFrame({'Locality':[], 'Street':[], 'Description':[]}) # 
 
for h in Streets:
    url = 'https://www.newbalashiha.ru/address/street/' + str(h)
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'lxml')
    
    Locality = soup.find_all(itemprop='addressLocality')
    Street = soup.find_all(itemprop='streetAddress')
    Description = soup.find_all(itemprop='description')
 
    
    for i in range(0, len(Locality)):
        df.loc[i] = [Locality[i].text, Street[i].text, Description[i].text] 
        print(Locality[i].text, Street[i].text, Description[i].text)
Пока проблема корректно заполнить фрейм

Добавлено через 1 час 1 минуту
Пока так и не разобрался как создать список адресов страниц сайта.
Но в целом, то что хотел получил.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import requests
from bs4 import BeautifulSoup
import pandas as pd
 
Streets = [1059,1138,1249,1075,1091,1121,1130,1131,1132,1133,1134,1135,1250,1076,1122,1214,1260,1060,1251,1123,1124,1062,1063,1125,1126,1127,1161,1128,1129,1467,1274,1242,1039,1065,1064,1066,1243,1045,1067,1068,1070,1071,1265,1072,1046,1026,247,1074,1073,1047,1077,1078,1079,1080,1257,1204,1361,1081,1083,1082,1084,1205,1085,1136,1086,1288,1087,1088,1089,1090,1092,1244,1094,1093,1245,1095,1096,1256,1097,1098,1284,1048,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1267,1113,1114,1115,1116,1117,1049,1255,1246,1041,1137,1261,1050,1118,1119,1120,1140,1139,1141,1142,1271,1145,1146,1144,1143,1148,1156,1266,1149,1150,1151,1258,1263,1152,1154,1247,1042,1155,1157,1044,1158,1159,1162,1163,1056,1164,1166,1167,1165,1051,1168,1052,1262,1169,1170,1171,1172,1173,1174,1175,1176,1426,1177,1178,1185,245,1180,1181,1179,1182,1248,1183,1184,1186,1057,10129,1187,1188,1189,1190,1191,1192,1193,1194,1053,1432,1196,86,1197,1198,1199,1054,1200,1201,1254,1253,1252,1202,1203,1040,1206,1207,1208,1209,1210,1211,1160,1212,1213,1215,1195,1264,1216,1217,1259,1218,1219,1268,68,1220,1221,1222,1223,1224,1225,1043,1226,1425,1227,1230,1229,1069,1231,1232,1237,1233,1235,1234,1238,1055,1287,1058,1239,1240,1241,1339,1342,1340,1289,1455,1364,120,1343,1427,1466,1403,1456,1147,1153,1424,1442,1347,1384,1363,1404,1422,1366,1385,1383,1390,1478,1484]
 
# Адрес записан некорректно
# https://www.newbalashiha.ru/address/street/1341 -  город Балашиха, д. Пестово д. 34 детский сад 2003 года постройки
# https://www.newbalashiha.ru/address/street/1358 - Балашиха, с. Новый Милет АГЗС
 
df = pd.DataFrame({'Locality':[], 'Street':[], 'Description':[]}) # 
n = 0
 
for h in Streets:
    url = 'https://www.newbalashiha.ru/address/street/' + str(h)
#     print(url)
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'lxml')
    
    Locality = soup.find_all(itemprop='addressLocality')
    Street = soup.find_all(itemprop='streetAddress')
    Description = soup.find_all(itemprop='description')
 
    
    for i in range(0, len(Locality)):
        df.loc[n] = [Locality[i].text, Street[i].text, Description[i].text] 
#         print(n, h, Locality[i].text, Street[i].text, Description[i].text)    
        n += 1
    
df.to_csv('Homes.csv')
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.08.2021, 01:25
Ответы с готовыми решениями:

Парсинг соседних страниц сайта и перебор их
import requests from bs4 import BeautifulSoup import csv def get_html(url): r = requests.get(url) r.encoding =...

парсинг страниц
как вырвать с этого сайта (https://sport-booking.ru/betting-odds/?q=%D1%87%D0%B5%D0%BC%D0%BF%D0%B8%D0%BE%D0%BD%D0%B0%D1%82+&amp;s=) таблицу

Docx + python парсинг xml, не обновляются данные страниц, слов и символов
Добрый вечер, не могу решить следующую ситуацию. Создаю файл *.docx добавляю в него параграф в параграф пишу текст и сохраняю, если открыть...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.08.2021, 01:25
Помогаю со студенческими работами здесь

Парсинг сайта: получение адресов всех магазинов
Добрый день! Есть желания получить адреса всех магазинов Пятерочка с официального сайта (5ka.ru/stores/). Проблема в том, что для...

Парсинг документов со всех страниц сайта
В общем, суть такова. Мне нужно скачать из сайта https://fasie.ru/ документы. Они могут быть в любом формате: pdf или doc. Мне нужно...

Парсинг страниц(ы)
Добрый день, товарищи! Решил попробовать автоматизировать выкачивание данных с сайта АТС посредством Python (изучал в университете, решил...

Парсинг всех страниц
На дамом сайте около 30 страниц 'https://stopgame.ru/review/izumitelno' как спарсить все название игр в карточках со всех страниц (при...

Парсинг страниц с python3
Все в целях обучения. Есть страница, не могу понять как получить содержимое класса. browser = mechanicalsoup.Browser() page...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Контроль корректности заполнения дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru