我正在尝试使用 pandas.read_html() 函数通过Transfetmarkt网站从各种 html 表格中抓取英国足球统计数据。
例子:
import pandas as pd
url = r'http://www.transfermarkt.co.uk/en/premier-league/gegentorminuten/wettbewerb_GB1.html'
df = pd.read_html(url)
但是,此代码会生成“ValueError:无效 URL”错误。
然后我尝试使用 urllib2.urlopen() 函数解析同一个网站。这次我得到一个“HTTPError:HTTP Error 404:Not Found”。在通常的试错故障查找之后,urllib2 标头向网络服务器提供了一个类似 python 的代理,我认为它无法识别。
现在,如果我修改 urllib2 的代理并使用 beautifulsoup 读取其内容,我可以毫无问题地读取表格。
例子:
from BeautifulSoup import BeautifulSoup
import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
url = r'http://www.transfermarkt.co.uk/en/premier-league/gegentorminuten/wettbewerb_GB1.html'
response = opener.open(url)
html = response.read()
soup = BeautifulSoup(html)
table = soup.find("table")
如何修改 pandas 的 urllib2 标头以允许 python 抓取该网站?
谢谢