import requests
from bs4 import BeautifulSoup
import csv
# URL = 'https://101hotels.com/recreation/russia/sankt-peterburg/points#page=2'(Пробелы стоят нарочно)
FILE = 'Par.csv'
def get_html(url):
r = requests.get(url)
return r
def get_content(html):
soup = BeautifulSoup(html, 'html.parser')
items = soup.find_all('li', class_='item')
objects = []
for item in items:
try:
objects.append({
'title': item.find('div', class_='item-name').text,
'address': item.find('span', class_='item-address').text,
'p': item.find('div', class_='item-description').text.replace('\xa0',''),
})
except:
pass
return objects
def save_file(items, path):
with open(path, 'w', newline='') as file:
writer = csv.writer(file, delimiter=';')
writer.writerow(['Объект', 'Адрес', 'Описание'])
for item in items:
writer.writerow([item['title'], item['address'], item['p']])
def parse():
URL = input('Введите URL: ')
URL = URL.strip()
html = get_html(URL)
try:
objects = []
objects.extend(get_content(html.text))
save_file(objects, FILE)
except:
print('Error')
parse()
Захотел сделать парсер интересных мест в СПб, всё, вроде бы, ок, но проблема в том, что страниц там много, и при парсинге он выдал результат только 1 страницы из 14, хотя продолжал парсить. Я подумал, что где-то накосячил, и убрал счётчик страниц и URL ввожу с рук. Но дилемма в том, что, даже если я просто вкину ему URL 2-ой и т.д. страницы, ничего не поменяется, результат - 1 страница. Не могли бы вы помочь мне решить проблему с парсингом оставшихся страниц?