【发布时间】:2020-10-14 18:56:49
【问题描述】:
我正在尝试从该投注页面获取所有匹配赔率:
这是控制台向我显示的内容(第一行和第二行):
我需要刮:
-
比赛名称,即“Palmeiras - Coritiba”等
-
每行的“1”列、“X”列和“2”列的值。
到目前为止,我有这个代码:
from splinter import Browser
from bs4 import BeautifulSoup
executable_path = {"executable_path": "/path/to/geckodriver"}
browser = Browser("firefox", **executable_path, headless=True, incognito=True)
bets = f'https://www.oddsportal.com/soccer/brazil/serie-a/'
browser.visit(bets)
# parse html
soup = BeautifulSoup(browser.html, 'html.parser')
odds = soup.find_all('tr', class_="odd")
for el in odds:
print (el.find('a').contents[0])
print (el.find('td', class_='odds-nowrp'))
但我只得到 9 行中 6 行的“1”列值:
<td class="odds-nowrp" xodd="1.52" xoid="E-3pdmnxv464x0x9vma2"><a href="" onclick="globals.ch.togle(this , 'E-3pdmnxv464x0x9vma2');return false;" xparam="odds_text">1.52</a></td>
<td class="odds-nowrp" xodd="1.9" xoid="E-3pdmoxv464x0x9vma4"><a href="" onclick="globals.ch.togle(this , 'E-3pdmoxv464x0x9vma4');return false;" xparam="odds_text">1.90</a></td>
<td class="odds-nowrp" xodd="2.17" xoid="E-3pdmsxv464x0x9vmac"><a href="" onclick="globals.ch.togle(this , 'E-3pdmsxv464x0x9vmac');return false;" xparam="odds_text">2.17</a></td>
<td class="odds-nowrp" xodd="4.24" xoid="E-3pdmrxv464x0x9vmaa"><a href="" onclick="globals.ch.togle(this , 'E-3pdmrxv464x0x9vmaa');return false;" xparam="odds_text">4.24</a></td>
<td class="odds-nowrp" xodd="2.49" xoid="E-3pdmuxv464x0x9vmag"><a href="" onclick="globals.ch.togle(this , 'E-3pdmuxv464x0x9vmag');return false;" xparam="odds_text">2.49</a></td>
<td class="odds-nowrp" xodd="4.08" xoid="E-3pdn3xv464x0x9vmaq"><a href="" onclick="globals.ch.togle(this , 'E-3pdn3xv464x0x9vmaq');return false;" xparam="odds_text">4.08</a></td>
而且我没有收到所需的“a”文本。
如何获取此页面上文本的所有列值和匹配项?
【问题讨论】:
-
@你在使用哪些库?
browser是什么? -
我正在使用 splinter / selenium。请参考我的编辑
-
我不知道什么是 splinter 但试试
el.find('td/a')
标签: python beautifulsoup splinter