第二天: 遍历网页内的所有链接
上一节中有一个小问题, 我们需要注意一下, 很多网站为了反爬会检测用户代理, 所以我们需要设置用户代理, 来停止爬虫失效.
设置用户代理
默认情况下, urllib2使用python-urllib2/2.7作为用户代理下载网页内容, 其中2.7是python的版本号. 但是这样存在一个问题, 有些网站可能会封掉你使用的默认代理, 如果我们能自己设置代理, 就可以解决这一个问题. 下面我们使用代理tubedown.cn作为代理来下载网页, 代理一般为浏览器的信息, 这里只是以tubedown.cn为例, 你可以根据你浏览器的信息写入就行:
#coding:utf8
import urllib2
def download(url, user_agent='tubedown.cn', num_retries=2):
print 'downloading:', url
headers = ('User-agent': user_agent)
request = urllib2.Request(url, headers=headers)
try:
html = urllib2.urlopen(request).read().decode('utf8', 'ignore').encode('gbk', 'ignore')
except urllib2.URLError as e:
print 'download error:'