Transfermarkt网址ID抓取

时间:2018-08-24 13:48:10

标签: python python-3.x web-scraping beautifulsoup

基本上我想创建一个工具,您输入播放器名称(因为它位于transfermarkt上,很好),它为您提供了teammates的列表。我可以用beautifoulsoup刮一下。问题是,该站点具有each profile/page的随机ID。有没有一种方法可以不必刮掉所有球员资料?如果没有,我该如何抓取整个数据库? (只有每个球员的队友页面)

1 个答案:

答案 0 :(得分:1)

如评论中所述,您可以使用搜索页面提取播放器的特定页面。

例如,考虑以下示例。

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}


player = "Modric"
data=requests.get("https://www.transfermarkt.com/schnellsuche/ergebnis/schnellsuche?query={}&x=0&y=0".format(player), headers=headers) 

soup = BeautifulSoup(data.text, "lxml")

table = soup.find("table", { "class" : "items" })

for row in table.find_all("table", { "class" : "inline-table" }):

    hrefs = row.find("a", {"class" : "spielprofil_tooltip"})

    print("player : {}".format(hrefs['title']))
    print("url : {}".format(hrefs['href']))

然后,根据结果,您可以检查特定播放器。请注意,结果表包含更多信息,例如team, position, age,...,您可以使用这些信息来确保播放器是正确的播放器