python爬虫学习(一)通过urllib2模块获取html,设置用户代理

来源:互联网 发布:扁平图标设计 知乎 编辑:程序博客网 时间:2024/05/13 04:58

摘自《用Python写网络爬虫》

第一个爬虫

通过urllib2模块获取html

import urllib2def 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 urllib2def 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

以上这个函数在我们以后的爬虫学习中将会得到灵活的复用。

0 0
原创粉丝点击