摘自《用Python写网络爬虫》
第一个爬虫
通过urllib2模块获取html
import urllib2
def getHtml(url,getNum):
##避免请求页面不存在或其他异常情况
try:
html = urllib2.urlopen(url).read()
except urllib2.URLError as e:
print 'get html error:',e.reason
html = None
if getNum > 0 :
if hasattr(e,'code') and 500 <= e.code <=600:
##当错误码为5xx时回调
return getHtml(url,getNum-1)
return html
PS:错误码503为服务器加载过时,可重新加载。
错误码404为该网页不存在,不可重新加载。
设置用户代理
因有些网站会封禁默认的用户代理,所有我们需要有个控制用户代理的设定。
例:设置一个默认的用户代理“wswp”(即Web Scraping with Python)
import urllib2
def getHtml(url,getNum,user-agent='wswp'):
##设置请求头
request_headers = {'User-agent':user_agent}
request = urllib2.Request(url,headers=request_headers)
##避免请求页面不存在或其他异常情况
try:
html = urllib2.urlopen(request).read()
except urllib2.URLError as e:
print 'get html error:',e.reason
html = None
if getNum > 0 :
if hasattr(e,'code') and 500 <= e.code <=600:
##当错误码为5xx时回调
return getHtml(url,getNum-1)
return html
以上这个函数在我们以后的爬虫学习中将会得到灵活的复用。