Задать вопрос
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону

Не получается спарсить, что делаю не так?

url = f'https://ru.beincrypto.com/price/'
r = requests.get(url)
print(len(r.text)) # 7078
soup = bs(r.text, 'lxml')
trs = soup.find("tr", { "data-id" : "bitcoin" })
print(trs)
на сайте есть такой тег с таким аттрибутом:<tr data-id="bitcoin" class="">
spoiler
6454cb0d9cf6a525436743.png

r.text не пустой. что делаю не так?
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
у тебя у r status_code 403. Добавь хоть какой нибудь header.
headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0'
}
r = requests.get(url,headers=headers)

Вот так сервер пришлет html.
Имей также ввиду что парсить интерактивно (в рамках одного соединения) с bs не получится, придется переподключаться часто ну и схватишь блок или ерунду начнет присылать в ответ. Если ты перейдешь на страницу, зайдешь в инспектор, нажмешь на значек настройка в панели инспектора, затем поставишь галочку Disable JavaScript и обновишь страницу, вся инфа на странице перестанет обновляться. По скольку обновление происходит средствами JavaScript a bs не работает с JavaScript.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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