试图抓桌子并继续得到空列表

时间:2018-03-23 21:05:45

标签: python web-scraping

我正试图抓取一些棒球相关数据,并继续得到一个空列表。我有点狡猾,希望有人可以提供帮助。谢谢!

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)

3 个答案:

答案 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')