[英]Web Scraping Extract Javascript Table Selenium+Python
[英]Python - javascript web scraping with selenium does not work properly
我正在嘗試從一個航班搜索網頁上抓取一些數據。 它可能是用Javascript生成的。 我已經嘗試了很多方法,但是沒有任何效果,所以我決定嘗試硒 。
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://www.pelikan.sk/sk/flights/list?dfc=CVIE%20BUD%20BTS&dtc=CMAD&rfc=CMAD&rtc=CVIE%20BUD%20BTS&dd=2015-07-09&rd=2015-07-14&px=1000&ns=0&prc=&rng=1&rbd=0&ct=0')
print driver.page_source
我雖然返回最終的javascript生成的html代碼,但是在瀏覽器中打開該頁面時,找不到該頁面上的字符串。
問題可能出在哪里? 我該怎么做才能得到那些航班?
編輯:我忘了提到頁面正在不斷加載新的航班。 因此,當您在瀏覽器中打開它時,它會顯示一些航班,但仍在加載其他航班。
該頁面具有很強的動態性 ,您需要等待頁面加載 。 選擇一些指示頁面和搜索結果已加載的內容。 例如,等待直到加載的圖像(帶有鵜鶘)變得不可見 :
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get("https://www.pelikan.sk/sk/flights/list?dfc=CVIE%20BUD%20BTS&dtc=CMAD&rfc=CMAD&rtc=CVIE%20BUD%20BTS&dd=2015-07-09&rd=2015-07-14&px=1000&ns=0&prc=&rng=1&rbd=0&ct=0")
wait = WebDriverWait(driver, 60)
wait.until(EC.invisibility_of_element_located((By.XPATH, '//img[contains(@src, "loading")]')))
wait.until(EC.invisibility_of_element_located((By.XPATH, u'//div[. = "Poprosíme o trpezlivosť, hľadáme pre Vás ešte viac letov"]/preceding-sibling::img')))
print(driver.page_source)
在這里,我們正在等待兩只鵜鶘飛走消失:一個較大的鵜鶘和一個較小的鵜鶘。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.