我正在尝试从注释中的表中抓取玩家数据。我使用了find_all,但是它只返回一个表。
以下是链接:https://www.baseball-reference.com/boxes/ANA/ANA201806180.shtml
这是我的代码。知道为什么它只返回一个球员数据表而不是全部吗?我也将页面保存在本地。
# import libraries and files
from bs4 import BeautifulSoup
import re
# Get Page
soup = BeautifulSoup(open("D:/My Web Sites/baseball 2/www.baseball-reference.com/boxes/ANA/ANA201806180.html"), "html.parser")
# use table text find comment text
table_text = soup.find(text=re.compile('table class="sortable stats_table"'))
# use bs4 to parse the text
table_soup = BeautifulSoup(table_text, 'lxml')
# Player Data from Tables
player_data = table_soup.find_all('tr')
print player_data
答案 0 :(得分:0)
您没有从该站点获取所有表格内容,因为它们都位于comment
之内。获取它们的过程与通常的过程略有不同。
查看this link了解更多详细信息。
试一下从该站点获取所有表格数据:
import requests
from bs4 import BeautifulSoup, Comment
res = requests.get("https://www.baseball-reference.com/boxes/ANA/ANA201806180.shtml",headers={"User-Agent":"Mozilla/5.0"})
soup = BeautifulSoup(res.text, 'lxml')
for comment in soup.find_all(string=lambda text:isinstance(text,Comment)):
data = BeautifulSoup(comment,"lxml")
for items in data.select("table tr"):
tds = [' '.join(item.text.split()) for item in items.select("th,td")]
print(tds)