Я пытаюсь получить данные о ценах по следующему URL.Тем не менее, я могу только получить текст от div'а до определенного уровня, вот мой код:
from selenium import webdriver
from bs4 import BeautifulSoup
def scrape_flight_prices(URL):
browser = webdriver.PhantomJS()
# PARSE THE HTML
browser.get(URL)
soup = BeautifulSoup(browser.page_source, "lxml")
page_divs = soup.findAll("div", attrs={'id':'app-root'})
for p in page_divs:
print(p)
if __name__ == '__main__':
URL1="https://www.skyscanner.net/transport/flights/brs/gnb/190216/190223/?adults=1&children=0&adultsv2=1&childrenv2=&infants=0&cabinclass=economy&rtn=1&preferdirects=false&outboundaltsenabled=false&inboundaltsenabled=false&ref=home#results"
А вот вывод:
<div id="app-root">
<section class="day-content state-loading state-no-results" id="daysection">
<div class="day-searching">
<div class="hot-spinner medium"></div>
<div class="day-searching-message">Searching</div>
</div>
</section>
</div>
РазделHTML, который я хочу очистить, выглядит следующим образом:
https://www.skyscanner.net/transport/flights/brs/gnb/190216/190223/?adults=1&children=0&adultsv2=1&childrenv2=&infants=0&cabinclass=economy&rtn=1&preferdirects=false&outboundaltsenabled=false&inboundaltsenabled=false&ref=home#results
Однако, когда я пытаюсь очистить следующий код:
prices = soup.findAll("a", attrs={'target':"_blank", "data-e2e":"itinerary-price", "class":"CTASection__price-2bc7h price"})
for p in prices:
print(p)
Он ничего не печатает!Я подозреваю, что js-скрипт выполняет что-то для генерации остальной части кода и / или данных?Может ли кто-нибудь помочь мне извлечь данные?В частности, я пытаюсь узнать цену, время полета, название авиакомпании и т. Д., Но если красивый суп не печатает соответствующий HTML-код со страницы, то я не уверен, как еще получить его?
Буду признателен за любые указатели!Большое спасибо заранее!