Python 我怎么刮https://www.premierleague.com/players 有关过去10年团队名册的信息?

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组合,但仍然

在过去的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组合,但仍然无法勉强使用


有人能帮忙吗?

我更喜欢使用
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、 g
get('https://www.premierleague.com“,params={'se':17,'cl':12})
这与我得到的结果相同。该名单仍然适用于2019/20赛季的球员,不属于任何特定球队。我正在努力获取所有赛季的团队数据。我不是EPL球迷,所以我不知道。。。。如果用浏览器查询时它在页面上,您需要找到a)什么是父HTML元素以便提取b)它是用javascript构建的动态表,因此您需要使用支持javascript的抓取技术,如
selenium
。只能使用beautiful soup或pandas提取静态HTML内容