我试图使用Python和Selenium从http://fuelinsights.gasbuddy.com/Charts中获取数据。困难的部分是数据只在线图上的一个点悬停时出现。目前,我的问题是无法创建所有悬停在对象上的列表。目前我的代码如下:
from selenium import webdriver as web
from selenium.webdriver.common.action_chains import ActionChains
driver = web.Chrome('driver path')
driver.get('http://fuelinsights.gasbuddy.com/Charts')
test= driver.find_elements_by_xpath('//*[@class="highcharts-markers"]')
print(test)
`
这给了我测试=[]。以前,我在所有的刮削项目中都使用了beauthoulsoup,但是我已经重新做了一些以前的项目,以确保我了解Selenium是如何工作的,并且没有出现问题。在
如果有人能帮我解决这个问题,这样我就可以创建一个项目列表,我可以使用ActionChains来悬停并从中提取价格和日期,我将不胜感激。在
谢谢你!在
****编辑**** 为了澄清这一点,我已经看过许多其他关于SVG和g元素以及Highcharts的文章,但是我仍然缺少解决这个问题的方法。我尝试了许多Xpath(以及其他find_elements_by options),但只得到两个结果:(1)Xpath有效,但不包含任何元素;或(2)InvalidSelectorException,表示无法使用Xpath表达式定位元素。我认为这可以归结为简单地错误地指定了Xpath,但是我不知道如何找到正确的Xpath。在
不能使用上面提到的Xpath来定位svg标记中的元素。在
可用于创建悬停对象列表的Xpath是:
“//[name()='svg']/[name()='g'和@class='highcharts-markers']/*[name()='path']”
我编写了一个java程序来获取所有工具提示元素的文本。您可以使用该逻辑并编写相应的python代码:
1。获取工具提示元素列表
2。遍历列表并使用action类移动并单击所有工具提示元素
3。获取工具提示元素的文本。
^{pr2}$相关问题 更多 >
编程相关推荐