Python 我怎么刮https://www.premierleague.com/players 有关过去10年团队名册的信息?
在过去的10年里,我一直在努力搜集数据,以获得英超俱乐部的球队名单 下面是我正在使用的代码。在这个特殊的例子中,se=17表示2008/09赛季,cl=12表示曼联Python 我怎么刮https://www.premierleague.com/players 有关过去10年团队名册的信息?,python,pandas,web-scraping,Python,Pandas,Web Scraping,在过去的10年里,我一直在努力搜集数据,以获得英超俱乐部的球队名单 下面是我正在使用的代码。在这个特殊的例子中,se=17表示2008/09赛季,cl=12表示曼联 url= 'https://www.premierleague.com/players?se=17&cl=12' r=requests.get(url) d= pd.read_html(r.text) d[0] 尽管url在页面上提供了正确的数据,但我得到的表格是2019/20赛季的表格。我已经尝试了多种url组合,但仍然
url= 'https://www.premierleague.com/players?se=17&cl=12'
r=requests.get(url)
d= pd.read_html(r.text)
d[0]
尽管url在页面上提供了正确的数据,但我得到的表格是2019/20赛季的表格。我已经尝试了多种url组合,但仍然无法勉强使用
有人能帮忙吗?我更喜欢使用
BeautifulSoup
导航DOM。这很有效
from bs4 import BeautifulSoup
import requests
resp = requests.get("https://www.premierleague.com/players", params={"se":17,"cl":12})
soup = BeautifulSoup(resp.content.decode(), "html.parser")
html = soup.find("div", {"class":"table playerIndex"}).find("table")
df = pd.read_html(str(html))[0]
样本输出
Player Position Nationality
Rolando Aarons Midfielder England
Tammy Abraham Forward England
Che Adams Forward England
Dennis Adeniran Midfielder England
Adrián Goalkeeper Spain
Adrien Silva Midfielder Portugal
尝试阅读
get
方法的文档。您可能会发现GET参数是作为单独的参数提供的:params
。您不能像在浏览器中那样将它们打包到URL中。e、 gget('https://www.premierleague.com“,params={'se':17,'cl':12})
这与我得到的结果相同。该名单仍然适用于2019/20赛季的球员,不属于任何特定球队。我正在努力获取所有赛季的团队数据。我不是EPL球迷,所以我不知道。。。。如果用浏览器查询时它在页面上,您需要找到a)什么是父HTML元素以便提取b)它是用javascript构建的动态表,因此您需要使用支持javascript的抓取技术,如selenium
。只能使用beautiful soup或pandas提取静态HTML内容