【发布时间】:2021-01-22 01:08:25
【问题描述】:
我正在尝试使用 BeautifulSoup 抓取足球统计数据,并且我正在尝试从“a”标签中获取球员的姓名,但没有运气。
这是我当前的代码:
from bs4 import BeautifulSoup
import requests
import numpy as np
import pandas as pd
url = 'https://www.pro-football-reference.com/years/2020/rushing.htm#rushing_and_receiving::rush_yds'
req = requests.get(url).text
soup = BeautifulSoup(req, 'lxml')
players = []
table = soup.find('table')
rows = table.find_all('tr')
for row in rows:
player = row.find_all('td', {'data-stat':'player'})
print(player)
以下是返回内容的前几个示例:
[<td class="left" csk="Henry,Derrick" data-append-csv="HenrDe00" data-stat="player"><a href="/players/H/HenrDe00.htm">Derrick Henry </a>*</td>]
[<td class="left" csk="Cook,Dalvin" data-append-csv="CookDa01" data-stat="player"><a href="/players/C/CookDa01.htm">Dalvin Cook</a>*</td>]
[<td class="left" csk="Jacobs,Josh" data-append-csv="JacoJo01" data-stat="player"><a href="/players/J/JacoJo01.htm">Josh Jacobs</a>*</td>]
如何只获取文本以便获取播放器的名称?有没有比我开始的更简单的方法来做到这一点?
这是我想要的:
Derrick Henry
Dalvin Cook
Josh Jacobs
我在循环中尝试了以下操作,但出现错误:
for row in rows:
player = row.find_all('td', {'data-stat':'player'}).text
print(player)
谢谢!
【问题讨论】:
标签: python beautifulsoup