Selenium获得三个文本值不一致的href

时间:2017-11-02 04:42:29

标签: javascript python selenium selenium-chromedriver



<tr class="odd deactivate" xeid="EiWNVsrN"><td class="table-time datet t1509231600-1-1-0-0 ">23:00</td><td class="name table-participant"><a href="/soccer/panama/lpf-2017-2018/tauro-san-francisco-EiWNVsrN/"><span class="bold">Tauro</span> - San Francisco</a></td><td class="center bold table-odds table-score">4:2</td><td class="odds-nowrp result-ok" xodd="1.56" xoid="E-2pdfcxv464x0x6g0ft"><a href="" onclick="globals.ch.togle(this , 'E-2pdfcxv464x0x6g0ft');return false;" xparam="odds_text">1.56</a></td><td class="odds-nowrp" xodd="3.43" xoid="E-2pdfcxv498x0x0"><a href="" onclick="globals.ch.togle(this , 'E-2pdfcxv498x0x0');return false;" xparam="odds_text">3.43</a></td><td class="odds-nowrp" xodd="5.46" xoid="E-2pdfcxv464x0x6g0fu"><a href="" onclick="globals.ch.togle(this , 'E-2pdfcxv464x0x6g0fu');return false;" xparam="odds_text">5.46</a></td><td class="center info-value">34</td></tr>
&#13;
&#13;
&#13;

<tr class="odd deactivate" xeid="EiWNVsrN">
    <td class="table-time datet t1509231600-1-1-0-0 ">23:00</td>
    <td class="name table-participant"><a href="/soccer/panama/lpf-2017-2018/tauro-san-francisco-EiWNVsrN/"><span class="bold">Tauro</span> - San Francisco</a></td>
    <td class="center bold table-odds table-score">4:2</td>
    <td class="odds-nowrp result-ok" xodd="1.56" xoid="E-2pdfcxv464x0x6g0ft"><a href="" onclick="globals.ch.togle(this , 'E-2pdfcxv464x0x6g0ft');return false;" xparam="odds_text">1.56</a></td>
    <td class="odds-nowrp" xodd="3.43" xoid="E-2pdfcxv498x0x0"><a href="" onclick="globals.ch.togle(this , 'E-2pdfcxv498x0x0');return false;" xparam="odds_text">3.43</a></td>
    <td class="odds-nowrp" xodd="5.46" xoid="E-2pdfcxv464x0x6g0fu"><a href="" onclick="globals.ch.togle(this , 'E-2pdfcxv464x0x6g0fu');return false;" xparam="odds_text">5.46</a></td>
    <td class="center info-value">34</td>
</tr>

您好我试图从上面的代码中提取一些文本值。上面的代码有数百个实例。此特定<tr>的值为1.56,3.33和5.46。每个我都需要分开。这是我为1.56的第一个值尝试的代码,但它在所有代码中都不一致,因为类名在&#34; odds-nowrp&#34;之间交替。和&#34;赔率 - 现在的结果 - 确定&#34;。

Home_odds = driver.find_elements_by_xpath("//td[@class='odds-nowrp']")
Home_odds = driver.find_elements_by_xpath("//*[@id='table-matches']/table/tbody/tr/td/a")

第一篇文章1.56我想引入Home_odds 第二篇文章3.43我想拉入Draw_odds 第三篇文章5.46我想引入Away_odds

我已经能够提取我需要的其他信息,但这三个文本值我无法始终如一地覆盖整个页面脚本。文本在开头显示为xodd =&#34; value&#34;在<a href ..

的末尾

3 个答案:

答案 0 :(得分:0)

您可以像这样使用xpath来提取值

为1.56

//a[contains(@xparam,'odds_text') and contains(text(),'1.56')]

表示3.43

//a[contains(@xparam,'odds_text') and contains(text(),'3.43')]

表示5.46

//a[contains(@xparam,'odds_text') and contains(text(),'5.46')]

答案 1 :(得分:0)

在xpath下面使用

|------------|--------------|
|  post_id   |   user_id    |
|------------|--------------|
|  1         |    1         |
|  2         |    1         |
|  3         |    1         |
|  4         |    1         |
|------------|--------------|

您也可以使用findelements并将结果存储在List中。然后使用list index迭代第1,第2和第3个索引

答案 2 :(得分:0)

要检索文字1.563.435.46,您可以使用以下代码:

Home_odds = driver.find_elements_by_xpath("//td[@class='odds-nowrp result-ok']/a").get_attribute("innerHTML")
Draw_odds = driver.find_elements_by_xpath("//td[@class='odds-nowrp result-ok']//following::td[1]/a").get_attribute("innerHTML")
Away_odds = driver.find_elements_by_xpath("//td[@class='odds-nowrp result-ok']//following::td[2]/a").get_attribute("innerHTML")