使用Python获取Wikipedia 的url时出现“ERR_ACCESS_DENIED”怎么办? - emy_yu - 博客园

使用Python获取Wikipedia 的url时出现“ERR_ACCESS_DENIED”怎么办? - emy_yu - 博客园

最近想用中文维基百科的一些文章进行文本分析,于是想爬一些有用的网页下来。起初找了个叫teleport pro的软件,但几经周折还是没找到方法下载指定层的文本(图片可以),而且下下来很多没用的插件,甚是复杂(网上有人说可以实现,但至今未研究明白,还请高手指点!)。于是用python写了段代码获取指定url的网页。这也是第一次接触urllib等库的使用。

代码如下(Linux 下 Python 2.6):

1 # coding=utf-8
2 
3 import urllib
4 
5 url='http://zh.wikipedia.org/wiki/Wikipedia:%E5%84%AA%E8%89%AF%E6%A2%9D%E7%9B%AE'
6 loca='/home/yxl/work/crawingpage/wiki.html'
7 
8 urllib.urlretrieve(url,loca)

但每次获得的网页都是无法进入该网页的错误信息,返回的网页内容如下:

使用Python获取Wikipedia 的url时出现“ERR_ACCESS_DENIED”怎么办? - emy_yu - 博客园_第1张图片

于是在网上找到了这样一个产生类似问题的帖子,解答说可以用urllib2 加上headers可以解决:

使用Python获取Wikipedia 的url时出现“ERR_ACCESS_DENIED”怎么办? - emy_yu - 博客园_第2张图片

于是我把代码修改后:

 1 # coding=utf-8
 2 
 3 import urllib2
 4 
 5 url='http://zh.wikipedia.org/wiki/Wikipedia:%E5%84%AA%E8%89%AF%E6%A2%9D%E7%9B%AE'
 6 loca='/home/yxl/work/crawingpage/wiki.html'
 7 
 8 opener = urllib2.build_opener()
 9 opener.addheaders = [('User-agent', 'Mozilla/5.0')]
10 urldata = opener.open(url)
11 f=file(loca,'w')
12 m=urldata.read()
13 print>>f,m

你可能感兴趣的:(python)