Не могу понять как на python написать функцию для вычисления номера страницы при парсинге сайта с bs4
Всем привет. Пишу парсер сайта на питоне используя bs4. Примитивами собираю некоторые тэги по статьям для формирования небольшой подборки данных. В питоне практически новичок. Пока процесс подстановки ссылки на страничку реализован на ручном приводе путем подстановки адреса конкретной страницы в код. Хотелось бы автоматизировать данный процесс. Для этого хочу написать функцию которая будет собирать все доступные адреса страниц в данном разделе. На текущий момент реализовано следующим образом (код не мой, взят с просторов интернета).
x=0
while True:
try:
if x == 0:
page_link = 'https://news.ycombinator.com/news'
else:
page_link = 'https://news.ycombinator.com/news' + next_link
code
search_morelink = soup.find('a', attrs={'class':'morelink'})
morelink_get = search_morelink.get('href')
next_link = morelink_get[4:]
x += 1
except:
print('err')
Ответы (1 шт):
Да очень просто. Смотри: ты парсишь элементы. Например, их 50 на странице, если элементов меньше 50, то это последняя страница.
Конкретно в твоем случае:
page=1
while True:
r=requests.get(f'...?page={page}')
s=BeautifulSoup(r.text)
l=len(s.find_all('tr', {'class': 'athing'}))
if l < 30:
break
page+=1