【发布时间】:2020-12-05 03:44:29
【问题描述】:
我正在抓取以下页面:https://www.transfermarkt.de/tsg-1899-hoffenheim/kader/verein/533/saison_id/2019/plus/1
表 1 列出了团队。第二列是玩家。我需要您在左下角的屏幕截图中看到的链接。
当我正常查看数据框时,我只在此单元格中得到以下内容:“Oliver BaumannO. BaumannTorwart”但我正在寻找“https://www.transfermarkt.de/oliver-baumann/profil/spieler /55089"。
你们有什么想法吗?
代码:
import pandas as pd
import requests
# Global variables
HEADS = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
dateiname = 'test.xlsx'
# Global variables
def get_response(url):
# URL-Anfrage durchfuehren
try:
response = requests.get(url, headers=HEADS)
except AttributeError:
print('AttributeError')
return response
def scraping_kader(response):
try:
dfs = pd.read_html(response.text)
#dfs = dfs.to_html(escape=False)
print(dfs[1])
print(dfs[1].iloc[0, :])
except ImportError:
print(' ImportError')
except ValueError:
print(' ValueError')
except AttributeError:
print(' AttributeError')
response = get_response('https://www.transfermarkt.de/tsg-1899-hoffenheim/kader/verein/533/saison_id/2019/plus/1')
scraping_kader(response)
【问题讨论】:
-
如果页面使用 javaScript 生成日期,那么您将需要 Selenium 来控制可以运行 JavaScript 的 Web 浏览器。
requests/pandas/beautifulsoup/lxml无法运行 JavaScript。 -
据我所知,pandas 只获取文本表格,您可能需要
beautifulsoup/lxml才能更手动地使用 HTML 并获取链接。