【发布时间】:2020-04-14 09:44:35
【问题描述】:
我想抓取这个页面,在 Python 中使用 Selenium 和 Chrome 驱动程序
我只对 Bet365 的开盘赔率感兴趣。
bet365_row = driver.find_element_by_xpath("//div[@id='odds-content']").find_element_by_tag_name('tbody').find_element_by_xpath("//tr[@data-bid='16']")
odd1= driver.find_element_by_xpath("//tr[@data-originid='1']").find_element_by_xpath("//td[@class='table-main__detail-odds table-main__detail-odds--first']").find_element_by_xpath("//span[@class='table-main__detail-odds--hasarchive']").text
print(odd1)
我写了这几行代码,但我只能刮取 10Bet 行的表的第一个奇数,但希望 bet365 行的开盘奇数。
【问题讨论】:
-
为了得到所有的奇数,你必须在
driver.find_element_by_xpath的元素中添加一个's',换句话说,你只会得到第一次出现。试试看:driver.find_elements_by_xpath(...) -
driver.find_elements_by_xpath("//div[@id='odds-content']") bet365odd=driver.find_elements_by_xpath("//tr[@data-bid='16']").find_elements_by_xpath("//tr[@data-originid='1']").find_elements_by_xpath("//td[@class='table-main__detail-odds table-main__detail-odds--first']").find_elements_by_xpath("//span[@class='table-main__detail-odds--hasarchive']").text我写了这个,添加了 find_elements,但是我得到了这个错误:AttributeError: 'list' object has no attribute 'find_elements_by_xpath' -
是的,因为
find_elements_by_xpath返回一个硒对象列表。如果是我,我会做这样的事情(查看我编辑的回复)
标签: python selenium selenium-webdriver