@san_m_m

Как спарсить таблицу с помощью BP?

Нужно забрать данные таблицы со сайта (https://mintrans.novreg.ru/perm/list.html).

Написал код:

import requests
from bs4 import BeautifulSoup  


links = []
for i in range(4):
    r = requests.get(f'https://mintrans.novreg.ru/perm/list%7Bpage-{i}%7D.html')
    soup = BeautifulSoup(r.text, 'html.parser')
    data = soup.find('table')
    links.append(data)

Но он мне выдает 4 одинаковых списка... А если на сайте вручную поменять номера страниц, то данные меняются.
Как решить Данную проблему?
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Не хватает куков, которые определяют, что на странице только 10 результатов (или больше), соответственно, если их нет - нет и страниц

Сделал так, все работает

import requests
from bs4 import BeautifulSoup  

s = requests.Session()

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'}

s.get('https://mintrans.novreg.ru/perm/list.html', headers=headers, cookies={'abc': 'all', 'count': '10'})

links = []
for i in range(1, 4):
    r = s.get(f'https://mintrans.novreg.ru/perm/list%7Bpage-{i}%7D.html', headers=headers, cookies={'abc': 'all', 'count': '10'})
    soup = BeautifulSoup(r.text, 'html.parser')
    data = soup.find('table')
    links.append(data)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы