gpt4 book ai didi

python - python 中的网页抓取仅检索一个条目

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:35 25 4
gpt4 key购买 nike

我正在尝试废弃 BBC 足球赛果网站来获取球队、投篮、进球、红牌和事件。

我用 Python 编写脚本并使用 Beautiful soup 包。提供的代码仅检索事件中表的第一个条目。当事件表打印到屏幕上时,完整的表将显示所有数据。

我从中抓取的表存储在事件中:

from bs4 import BeautifulSoup
import urllib2

url = 'http://www.bbc.co.uk/sport/football/result/partial/EFBO815155?teamview=false'
inner_page = urllib2.urlopen(url).read()
soupb = BeautifulSoup(inner_page, 'lxml')

for incidents in soupb.find_all('table', class_="incidents-table"):
print incidents.prettify()
home_inc_tag = incidents.find('td', class_='incident-player-home')
home_inc = home_inc_tag and ''.join(home_inc_tag.stripped_strings)


type_inc_tag = incidents.find('td', 'span', class_='incident-type goal')
type_inc = type_inc_tag and ''.join(type_inc_tag.stripped_strings)

time_inc_tag = incidents.find('td', class_='incident-time')
time_inc = time_inc_tag and ''.join(time_inc_tag.stripped_strings)

away_inc_tag = incidents.find('td', class_='incident-player-away')
away_inc = away_inc_tag and ''.join(away_inc_tag.stripped_strings)

print home_inc, time_inc, type_inc, away_inc

在将正则表达式添加到 URL 中以获取所有匹配详细信息之前,我目前只关注一对一匹配以获得正确结果 (EFBO815155)。

因此,incidents for 循环并未获取所有数据,仅获取表中的第一个条目。

预先感谢,我是堆栈溢出的新手,如果这篇文章、格式等有任何问题,请告诉我。谢谢!

最佳答案

首先,获取事件表:

  incidentsTable = soupb.find_all('table', class_='incidents-table')[0]

然后循环遍历该表中的所有“tr”标签。

  for incidents in incidentsTable.find_all('tr'):
# your code as it is
print incidents.prettify()
home_inc_tag = incidents.find('td', class_='incident-player-home')
home_inc = home_inc_tag and ''.join(home_inc_tag.stripped_strings)
.
.
.

给出输出:

Bradford Park Avenue 1-2 Boston United
None None
2' Goal J.Rollins
36' None C.Piergianni
N.Turner 42' None
50' Goal D.Southwell
C.King 60' Goal

这很接近你想要的。希望这有帮助!

关于python - python 中的网页抓取仅检索一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35647782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com