【问题标题】:How to filter values extracted from HTML table如何过滤从 HTML 表中提取的值
【发布时间】:2020-08-05 12:27:07
【问题描述】:

我想从 betexplorer 获取统计数据和赔率,尤其是这个网站 https://www.betexplorer.com/soccer/russia/premier-league-2019-2020/cska-moscow-fc-tambov/8Ya3mpOC/

homeodd = driver.find_element_by_xpath("//*[contains(@id,'aodds')]").text

我有这个回报

CLOSING ODDS
22.07. 17:48 1.28 +0.01
OPENING ODDS
17.07. 00:07 1.27

我怎么能只刮开开盘赔率?

【问题讨论】:

  • 我还是没有在网页中找到文字CLOSING ODDSOPENING ODDS

标签: python python-3.x selenium xpath


【解决方案1】:

尝试更具体的 XPath 以仅获取开局赔率:

xpath = '//table[starts-with(@id,"aodds")]//tr[th="Opening odds"]/following-sibling::tr'
homeodd = driver.find_element_by_xpath(xpath).text

如果你想忽略 datechange 值:

xpath = '//table[starts-with(@id,"aodds")]//tr[th="Opening odds"]/following-sibling::tr/td[@class="bold"]'

【讨论】:

    【解决方案2】:

    一个 xpath,例如:

    //tbody[contains(@id,'aodds')]/tr[4]
    

    似乎突出显示了 DOM 中的相关行:

    由此,您可以查找 find_elements 并打印出每个子元素 td。 (如果你需要这方面的支持,请大声喊叫)

    作为替代方案,如果您已经拥有整个文本,则可以只操作您的字符串。 假设 homeodd 包含您发布的文本:

    print (homeodd.split('OPENING ODDS')[-1])
    

    这将围绕您所需的文本进行拆分,[-1] 采用数组中的最后一项 - 即开盘赔率之后的所有内容。

    【讨论】:

      猜你喜欢
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 2021-01-05
      相关资源
      最近更新 更多