我被困住了..这么多个小时..在这里查找了数百个问题和答案..
我想从银行产品网站 grep 数据,例如来自以下位置的“Delta”:
https://wertpapiere.ing.de/Investieren/Derivat/DE000HS2JL06
(链接将于 2024 年 9 月 17 日失效,因为产品届时将终止)
delta.text 应该是 -0,0193
第一次尝试:
delta = driver.find_element(By.XPATH, '//*[text()=\'Delta\']/following-sibling::td')
有时有效..大多数情况下无效..出于什么原因?情况可能是这样的:“Delta”在网站上出现了 10 次,但随后:
delta = driver.find_element(By.XPATH, '//*[text()=\'Delta\']/[5]following-sibling::td')
应该可以解决问题,但没有。
另一种尝试:
delta = driver.find_element(By.XPATH, '//td[contains(text(), "Delta")]/following-sibling::td')
应该可以,但也不行。
尝试使用完整路径应该可以解决问题:
delta = driver.find_element(By.XPATH, '/html/body/main/div[2]/div/div[2]/div[1]/sh-derivative-greeks/div/div[1]/div/table/tbody/tr[2]/td[2]')
但找不到该元素;我认为是因为网站生成的动态 ID。
有谁有决定性的提示吗?
非常感谢!克里斯
该页面中的信息通过 XHR 调用提供给各种 API 端点。您可以在浏览器的开发工具 -> 网络选项卡中检查这些端点。以下是获得该特定
delta
值的方法:终端结果:
可以在此处找到请求文档。
编辑:如果您更喜欢硒:
终端结果:
Selenium 文档可以在这里找到。