大公司用缓存个人/小公司用内存即可如果想保留,就用数据表
5-2 Python爬虫urlib2下载器网页的三种方法2018-02-25urllib2方法2:
向服务器提交用户需要输入的数据
将url使用urllib2的Request方法生成一个request对象
request对象可以向服务器提交data和http header
另外可以使用urlopen方法将request对象作为参数向网页提交下载请求
import urllib2
request = urllib2.Request(url) #创建Request对象
request.add_dara('a','1') #添加数据
request.add_header('User-Agent','Mozilla/5.0) #添加http的header 这里伪装成了一个Mozilla浏览器
response = urllib2.urlopen(request) #发送请求获取结果
urllib2下载方法3:
添加特殊情况的处理器
HTTPCookueProcessor #添加以处理需要用户登录才能访问的网页
ProxyHandler #添加以处理需要代理才能访问的网页
HTTPSHandler #添加以处理HTTPS加密协议的网页
HTTPREdirectHandler #添加以处理URL之间自动相互跳转的网页
讲这些handler传给urllib2的build_opener(handler)方法创建opener对象
然后给urllib2下载这个opener使用urllib2的install_opener(opener)方法
这样urllib2就具有了这些场景的处理能力
然后仍然使用urllib2的urlopen(url)方法请求一个url或request
实现网页的下载
代码如下:#举个栗子 我们增强cookie的处理
import urllib2, cookielib
cj = cookielib.CookieJar( ) #创建cookie容器
opener = urllib2.build_opener(urllib2.HTTPCookieProcessir(cj)) #创建1个opener
urlib2,install_opener(opener) #给urllib2安装opener
response = urllib2.urlopen("http://www.baidu.com/") #使用带有cookie的urllib2访问网页
5-2 Python爬虫urlib2下载器网页的三种方法2016-12-09登陆,代理,加密,自动跳转
遇到特殊情景时需要添加特殊情景处理器
1、需要用户登录才能访问的网页。添加cookie处理,使用HTTPCookieProcessor。
2、需要代理才能访问的网页。使用ProxyHandler。
3、协议使用HTTPS加密访问的网页。使用HTTPSHandler。
4、URL相互自动跳转的网页。使用HTTPRedirectHandler。
将以上这些Handler传送给urllib2的build_opener(Handler)方法,生成一个opener对象。
然后向urllib2中install_opner(opner)这个opener,这样urllib2模块就具有了这些场景的处理能力。
最后用urlopen()方法请求一个url或请求一个request,来实现网页的下载。
代码:增强cookie处理
import urllib2, cookielib
#创建cookie容器
cj=cookielib.CookieJar()
#创建1个opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#给urllib2安装opener
urllib2.install_opener(opener)
#使用带cookie的urllib2访问网页
response = urllib2.urlopen("http://www.baidu.com/")