我正试图抓取一些棒球相关数据,并继续得到一个空列表。我有点狡猾,希望有人可以提供帮助。谢谢!
from bs4 import BeautifulSoup
import requests
url = 'https://www.fangraphs.com/statss.aspx?playerid=2520&position=P'
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
playerData = soup.find_all('tr', {"id":"SeasonStats1_dgSeason11_ctl00"})
print(playerData)
答案 0 :(得分:0)
您的数据中不存在SeasonStats1_dgSeason11_ctl00。你需要使用lamda或regex
进行通配符playerData = soup.find_all('tr',{"id": lambda L: L and L.startswith('SeasonStats1_dgSeason11_ctl00')})
print(playerData)
答案 1 :(得分:0)
没有ID " SeasonStats1_dgSeason11_ctl00"
的行但你可以用' table' 而不是行' tr'
来获得整个表格。playerData = soup.find_all('table', {"id":"SeasonStats1_dgSeason11_ctl00"})
答案 2 :(得分:0)
那是因为rows
与父表的id
不同。
您可以像这样访问它们:
playerData = soup.find('table', {"id":"SeasonStats1_dgSeason11_ctl00"}).find_all('tr')