【发布时间】:2018-04-20 10:22:03
【问题描述】:
我目前正在尝试抓取此网站 https://schedule.townsville-port.com.au/
我想抓取所有单独工具提示中的文本。
这是我必须悬停的典型元素的 html 的样子
<div event_id="55591" class="dhx_cal_event_line past_event" style="position:absolute; top:2px; height: 42px; left:1px; width:750px;"><div>
这是工具提示的典型 html 的样子
<div class="dhtmlXTooltip tooltip" style="visibility: visible; left: 803px; bottom:74px;
我尝试了各种组合,例如尝试直接抓取工具提示,还尝试通过将鼠标悬停在需要悬停的位置来抓取 html。
tool_tips=driver.find_elements_by_class_name("dhx_cal_event_line past_event")
tool_tips=driver.find_elements_by_xpath("//div[@class=dhx_cal_event_line past_event]")
tool_tips=driver.find_element_by_css_selector("dhx_cal_event_line past_event")
我也尝试使用“dhtmlXTooltip tooltip”而不是“dhx_cal_event_line past_event”来使用相同的代码
我真的不明白为什么。
tool_tips=driver.find_elements_by_class_name("dhx_cal_event_line past_event")
没用。
Beautifulsoup 可以用来解决这个问题吗?由于 html 是动态的和变化的?
【问题讨论】:
-
你需要实现ActionChains。
find_elements_by_class_name("dhx_cal_event_line past_event")不起作用,因为不允许使用复合类名称。正确的 CSS 选择器也是find_elements_by_css_selector(".dhx_cal_event_line.past_event") -
如果考虑到
Beautifulsoup,你为什么不标记Beautifulsoup,但你已经标记了Selenium -
谢谢你我现在已经标记了它。
-
@Andersson 阅读了 ActionChains 的文档,看来我仍然需要找到元素,我该如何找到元素?我试过 find_elements_by_css_selector(".dhx_cal_event_line.past_event" 但也没有找到元素。我没有得到“没有这样的元素”异常。
-
这是因为那些元素是动态生成的,所以还需要实现Wait
标签: python html selenium web-scraping beautifulsoup