使用BeautifulSoup尝试获取NFL统计表中特定部分

2024-04-26 06:01:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图抓住桌上的每一个数据。我已经缩小到一个团队的每一列,只需要抓住实际的数字!我的代码是:

import requests
from bs4 import BeautifulSoup
url = 'http://espn.go.com/nfl/statistics/team/_/stat/defense/position/defense'
response = requests.get(url)
html = response.content
soup = BeautifulSoup(html)
HoustonDefense = soup.find('tr', class_="oddrow team-28-34")
print (HoustonDefense.prettify())

这将有休斯顿防御专栏印刷如下:

<tr align="right" class="oddrow team-28-34">
  <td align="left">
    1
  </td>
  <td align="left">
    <a href="http://espn.go.com/nfl/team/_/name/hou/houston-texans">
   Houston
  </a>
  </td>
  <td>
    539
  </td>
  <td>
    272
  </td>
  <td class="sortcell">
    811
  </td>
  <td>
    22.0
  </td>
  <td>
    136
  </td>
  <td>
    65
  </td>
  <td>
    9
  </td>
  <td>
    102
  </td>
  <td>
    38
  </td>
  <td>
    1
  </td>
  <td>
    17
  </td>
  <td>
    5
  </td>
  <td>
    2
  </td>
</tr>

我想获取每个<td></td>之间的数字,并将它们赋给一个变量。任何帮助都是惊人的!谢谢!你知道吗


Tags: importcomhttpurlgo数字requeststr
1条回答
网友
1楼 · 发布于 2024-04-26 06:01:51

使用find_all()查找tr中的所有td元素,并获取除前两个单元格(排名和团队名称本身)以外的所有td元素的文本:

[td.text for td in HoustonDefense.find_all("td")[2:]]

印刷品:

[u'539', u'272', u'811', u'22.0', u'136', u'65', u'9', u'102', u'38', u'1', u'17', u'5', u'2']

相关问题 更多 >