python - 使用 beautifulsoup、python 抓取具有相同类的不同表

标签 python html beautifulsoup html-parsing

我正在尝试使用 BeautifulSoup 和Python来提取该网站的所有可能性

http://www.sportstats.com/soccer/italy/serie-a-2013-2014/sampdoria-napoli-zZAT2c14/#odds/1X2/s3

根据它们的类型,它们被分为不同的表。

例如:div id="betType_1_2"下的第一个表格代表“全场”1X2类型的赔率

我尝试搜索所有 class="odds"但它也返回其他表中的赔率。 有谁知道如何提取然后每次通过其“div id”只抓取一张表?然后我就能够搜索 class="odds"并获取我需要的数据。 谢谢大家,抱歉我的英语不好!!

最佳答案

您可以使用CSS selectors获取所需 div 中的表格行:

from bs4 import BeautifulSoup
import requests


url = "http://www.sportstats.com/soccer/italy/serie-a-2013-2014/sampdoria-napoli-zZAT2c14/?block=3"
soup = BeautifulSoup(requests.get(url).content)

id_ = "betType_1_2"
for item in soup.select('div#{id} table.oddsTable tr'.format(id=id_))[1:-1]:
    print [td.text for td in item('td')]

打印:

[u'bwin', u'3.20', u'3.75', u'2.05']
[u'FortunaWin', u'3.30', u'3.40', u'2.10']
[u'Unibet', u'3.45', u'3.50', u'2.10']
[u'Betclic', u'3.40', u'3.60', u'2.00']
[u'Expekt', u'3.40', u'3.60', u'2.00']
[u'Betsson', u'3.50', u'3.35', u'2.10']
[u'Betsafe', u'3.55', u'3.40', u'2.11']
[u'10Bet', u'3.40', u'3.45', u'2.10']
...

关于python - 使用 beautifulsoup、python 抓取具有相同类的不同表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27485854/

相关文章:

html - 显示特定类之后的元素

css - 图像在 div 之上

python - 通过网页抓取计算 HTML 标签的数量

pandas - 使用python从html中提取表数据,其中行存储在div中

python - 如何获得Python的等价物[:-1] in django ORM?

python - 使用依赖规则匹配的aspect-opinion提取中的命名实体识别

python - 更改python shell的背景颜色

Python,使用定义的函数循环,但输出奇怪的值

javascript - 需要获取静态文件的状态

python - 如何使用变量设置 Discord 嵌入消息的图像?