打印没有HTML标签的表格,用于计算

时间:2015-03-20 14:08:33

标签: web-scraping beautifulsoup html-parsing python-3.4

我试图将这个网站的参与者和赔率的名称变成一个列表或表格,然后我可以用它来计算。我想查看有序输出中的数据,如下所示

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)

一旦我能够以上述格式构建数据,我希望能够对数据进行计算。

1 个答案:

答案 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)