Ошибка в цикле обработки страниц в парсере сайта - Python
Формулировка задачи:
Доброго времени суток, при написании парсера (код ниже) застрял на ошибке - цикл обработки страниц обрабатывает только одну страницу и выводит информацию столько раз, сколько получено страниц при пагинге вместо того чтобы обработать все страницы. Застрял…подскажите пожалуйста где я ошибся:
Листинг программы
- import urllib.request
- from bs4 import BeautifulSoup
- BASE_URL = "https://bank.gov.ua/control/uk/publish/category?cat_id=55838&page=1"
- def get_html(url):
- response = urllib.request.urlopen(url)
- return response.read()
- #создаем счетчик страниц:
- def get_page_count(html):
- soup = BeautifulSoup(html,'lxml')
- last_link = soup.find('td', class_='nav').find_all('a')[-1:]
- for href in last_link:
- paggination = href.get('href').split('=')
- return int(paggination[-1])
- def parse(html):
- soup = BeautifulSoup(html,'lxml')
- table = soup.find('div',class_='announces_block')
- projects = []
- for row in table.find_all('tr')[2:]:
- cols = row.find_all('td')
- projects.append({
- 'Date': cols[0].div.get_text().strip(),
- 'Announces': cols[0].a.get_text().strip(),
- })
- for project in projects:
- return projects
- def main():
- page_count = get_page_count(get_html(BASE_URL))
- print('всего найдено страниц %d'% page_count)
- projects = []
- #обрабатываем каждую страницу
- for page in range (1, page_count):
- print ('Парсинг %d%%'%(page/page_count*100))
- projects.extend(parse(get_html(BASE_URL + '?page=%d' % page)))
- for project in projects:
- print(project)
- if __name__=='__main__':
- main()
Решение задачи: «Ошибка в цикле обработки страниц в парсере сайта»
textual
Листинг программы
- projects.extend(parse(get_html(BASE_URL + '&page=%d' % page)))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д