通过在交互式图表上收集数据点来抓取SVG图表

时间:2018-12-12 12:40:33

标签: python python-3.x selenium-webdriver web-scraping css-selectors

嗨,我正尝试从附加的html抓取数据点。我需要svg图表的圆点来抓取内容。我试过像下面-

dots_css = "div#MBcharts-0.MBcharts-container svg g.MBcharts-grid path"
dots_list = driver.find_elements_by_css_selector(dots_css)

我得到了数据点,但是问题是有两个元素具有相同的类名而没有id(如“ g.MBcharts-grid”的屏幕截图所示)。 虽然我只需要从第一次出现的路径中获取数据点。 使用Python和Selenium进行网络抓取enter image description here

1 个答案:

答案 0 :(得分:1)

如果需要CSS选择器的第一个匹配项,则可以切换到.find_element_by_css_selector()s之后不能使用element

desired_path = driver.find_element_by_css_selector(dots_css)

或者,first-child selector也可以完成此任务,因为匹配元素是同级:

dots_css = "div#MBcharts-0.MBcharts-container svg g.MBcharts-grid:first-child path"
dots_list = driver.find_element_by_css_selector(dots_css)
相关问题