gpt4 book ai didi

python - 网页抓取无法通过 Selenium/BS4 获取完整的源代码数据

转载 作者:行者123 更新时间:2023-12-01 08:32:00 25 4
gpt4 key购买 nike

enter image description here

如何从我检查的源中抓取输入标记值属性中的数据,如图所示?

我尝试过使用 BeautifulSoup 和 Selenium,但它们都不适合我。

部分代码如下:

html=driver.page_source

output=driver.find_element_by_css_selector('#bookingForm > div:nth-child(1) > div.bookingType > div:nth-child(15) > div.col-md-9 > input').get_attribute("value")

print(output)

这会返回 NoSuchElementException 错误。

事实上,当我尝试print(html)时,很多源代码数据似乎丢失了。我怀疑这可能是 JS 相关的问题,但是 Selenium(大部分时间都在渲染 JS 上工作)在这个网站上对我不起作用。知道为什么吗?

我也尝试过这些:

html=driver.page_source

soup=bs4.BeautifulSoup(html,'lxml')

test = soup.find("input",{"class":"inputDisable"})

print(test)

print(soup)

print(test) 返回 Noneprint(soup) 返回大多数输入标签完全缺失的源。

最佳答案

通过检查页面来检查此元素是否存在于该网站上。如果它在那里,很多时候selenium太快了,页面有时无法完全加载。尝试selenium的WAIT功能。很多时候就是这种情况。

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException

browser = webdriver.Firefox()
browser.get("url")
delay = 3 # seconds
try:
myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'IdOfMyElement')))
print "Page is ready!"
except TimeoutException:
print "Loading took too much time!"

关于python - 网页抓取无法通过 Selenium/BS4 获取完整的源代码数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53871550/

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