BS4 возвращает HTML отсутствующие элементы

1

Я пытаюсь очистить Момондо. Меня интересует цена, которую можно найти здесь

<div class="price-price">182 USD</div>

Я соскабливаю со следующим кодом

from bs4 import BeautifulSoup
import urllib.request

url = 'https://www.momondo.com/flight-search/PAR-BER/2018-07-22?sort=price_a'
response = urllib.request.urlopen(url)
html = response.read()
print(html)
soup = BeautifulSoup(html,'html5lib')
all = soup.find_all('div',class_='price-price')
for item in all:
    print(item.text)

Ответ и, следовательно, html не содержат класс "цена-цена". Можете ли вы указать мне мою ошибку?

  • 0
    Я не вижу элемента с классом "цена-цена" - это где находится страница? Кроме того, появляется страница, которая регулярно проверяет, что соскоб не происходит, что может указывать на то, что оно противоречит правилам сайта.
Теги:
web-scraping

1 ответ

0

Похоже, что элемент, который вы пытаетесь захватить, динамически генерируется JavaScript. request получает контент до того, как это произойдет.

Для таких ситуаций есть две вещи, которые вы можете сделать,

  1. Рекомендуемый способ сделать это - использовать что-то еще, например селен, чтобы получить источник страницы.

  2. Проверьте вкладку сети в инструментах разработчика браузера и посмотрите, загружается ли файл данных, это любопытный способ взлома и не всегда будет работать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню