小编kbg*_*bgo的帖子

如何修改熊猫的Read_html用户代理?

我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

但是,此代码会生成“ ValueError:无效的URL”错误。

然后,我尝试使用urllib2.urlopen()函数解析同一网站。这次我收到了“ HTTPError:HTTP错误404:未找到”。经过通常的试验和错误故障查找后,结果表明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")
Run Code Online (Sandbox Code Playgroud)

如何修改熊猫的urllib2标头以允许python抓取此网站?

谢谢

python urllib2 web-scraping pandas

2
推荐指数
1
解决办法
6443
查看次数

标签 统计

pandas ×1

python ×1

urllib2 ×1

web-scraping ×1