使用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)但每次获得的网页都是无法进入该网页的错误信息,返回的网页内容如下:
于是在网上找到了这样一个产生类似问题的帖子,解答说可以用urllib2 加上headers可以解决:
于是我把代码修改后:
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