gpt4 book ai didi

javascript - Python - 使用 selenium 的 javascript 网页抓取无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-03 17:38:14 26 4
gpt4 key购买 nike

我正在尝试从一个航类搜索网页中抓取一些数据。它可能是用 Javascript 生成的。我尝试了很多方法,但没有任何效果,所以我决定尝试selenium

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 代码,但在浏览器中打开此页面时我找不到该页面上的字符串。

问题可能出在哪里?我应该怎么做才能获得这些航类?

编辑:我忘了提及该页面正在不断加载新航类。因此,当您在浏览器中打开它时,它会显示一些航类,但仍在加载其他航类。

最佳答案

该页面具有相当大的动态特性,您需要 wait for the page to load 。选择表明页面和搜索结果已加载的内容。例如,等到加载图像(有鹈鹕)变成 invisible :

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)

我们在这里等待两只鹈鹕飞走消失:一只较大,一只较小。

关于javascript - Python - 使用 selenium 的 javascript 网页抓取无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30916727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com