如何解决网络抓取HTML表
我如何在此网站https://www.betexplorer.com/soccer/russia/premier-league/arsenal-tula-ufa/IwvO3Q5T/上抢开赔率?
try:
driver.find_element_by_xpath("//td[a[.='bet365']]/following-sibling::td[span]")
except NoSuchElementException:
homeodd = 'no bet365 odd'
drawodd = 'no bet365 odd'
awayodd = 'no bet365 odd'
else:
homeodd = WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,'//td[a[.="bet365"]]/following-sibling::td[span][1]'))).get_attribute("data-opening-odd")
drawodd = WebDriverWait(driver,'//td[a[.="bet365"]]/following-sibling::td[span][2]'))).get_attribute("data-opening-odd")
awayodd = WebDriverWait(driver,'//td[a[.="bet365"]]/following-sibling::td[span][3]'))).get_attribute("data-opening-odd")
解决方法
建议开场赔率:
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"(//td[a[.='bet365']]/following-sibling::td[@data-odd])[1]"))).click()
oid = WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,"(//td[a[.='bet365']]/following-sibling::td[@data-odd])[1]"))).get_attribute("@data-oid")
bid = WebDriverWait(driver,"(//td[a[.='bet365']]/following-sibling::td[@data-odd])[1]"))).get_attribute("@data-bid")
var = oid+'-'+bid
WebDriverWait(driver,"//*[contains(@id,'%s')]/tr[last()]/td[@class='bold']" % var))).text
首先,我们单击包含最终奇数的td
元素。然后,从该td元素中获取2个属性值(data-oid
和data bid
)。我们将这两个值合并为一个变量。我们在最后一个XPath表达式中使用此变量来定位包含开头奇数的td
元素。
对于平局赔率和远距赔率,请使用以下XPath:
(//td[a[.='bet365']]/following-sibling::td[@data-odd])[2]
(//td[a[.='bet365']]/following-sibling::td[@data-odd])[3]
添加例外情况,以免没有开盘赔率(示例网页中bet365
没有开盘赔率)。
进口:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。