在开始的时候,遇见这种错误:urllib2.HTTPError: HTTP Error 403: Forbidden, 百度了下,发现是源网页放爬虫,要把代码伪装成浏览器访问才可以。
用于伪装的代码:
#伪装浏览器头
headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
# url为对应的网页链接
req = urllib2.Request(url,headers = headers)
尝试爬取了很多网页,发现在一些防爬虫的网页上面进行爬取的时候,会出现一些js或者css显示的异常(也就是不能正常显示),目前还不知道具体应该怎么解决。
下面是爬取豆瓣网编程书籍页面的信息
#!/usr/bin/python
#coding: utf-8
import urllib2
def doubanbook(url,begin,end):
for i in range(begin,end+1):
# 设置文件名称
filename = str(i) + '.html'
# 提示信息
print 'Downloading ' + str(i) + '....... Filename is ' + filename
# 打开文件对象
# 目录名不要出现中文
f = open('E:\\douban\\'+filename,'w+')
x = url + str(i)
# 伪装浏览器头
headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
m = urllib2.Request(x, headers = headers)
m = urllib2.urlopen(m).read()
f.write(m)
f.close()
if __name__ == '__main__':
# 防爬虫的网站:http://acm.hdu.edu.cn/showproblem.php?pid=
url = 'https://book.douban.com/tag/编程?start='
begin = input('请输入你抓取的页数开始为:')
end = input('请输入你抓取的页数结束为:')
doubanbook(url,begin,end)