我试图将这个网站的参与者和赔率的名称变成一个列表或表格,然后我可以用它来计算。我想查看有序输出中的数据,如下所示
1.name / odds vs name / odds
2.name / odds vs name / odds
目前我似乎只能单独抓取它们,当我打印它们时,它们仍然包含HTML标记。
import requests
from bs4 import BeautifulSoup
url = requests.get('http://www.oddschecker.com/tennis/match-coupon')
html = url.content
soup = BeautifulSoup(html)
odds = soup.find_all("span", "odds")
print(odds)
一旦我能够以上述格式构建数据,我希望能够对数据进行计算。
答案 0 :(得分:0)
我们的想法是迭代表行(tr
标记,并显示data-market-id
属性),找到所有参与者和赔率by class names。而且您需要通过get_text()
获取元素的文本:
工作示例:
import requests
from bs4 import BeautifulSoup
url = requests.get('http://www.oddschecker.com/tennis/match-coupon')
html = url.content
soup = BeautifulSoup(html)
for row in soup.find_all("tr", {"data-market-id": True}):
participants = [item.get_text(strip=True) for item in row.find_all('span', class_='fixtures-bet-name')]
odds = [item.get_text(strip=True) for item in row.find_all('span', class_='odds')]
print participants[0], odds[0], participants[1], odds[1]
打印:
Tomas Berdych (9/4) Roger Federer (5/12)
Milos Raonic (15/8) Rafael Nadal (8/15)
...
Vera Lapko (5/6) Julia Terziyska (5/6)
Aminat Kushkhova (11/10) Katie Swan (4/6)