个人的第三篇博客,继续视频学习,感兴趣的小伙伴可以查看这个视频链接https://www.imooc.com/video/10680/0,所有的图片均为视频截图,如果涉及版权问题,请联系删除。
四、网页下载器及urllib2模块
1、网页下载器是爬虫的核心组件、将互联网上URL对应的网页下载到本地,类似于网页浏览器,将URL对应的网页以HTML的形式下载到本地,存储成本地文件或内存字符串。
2. urllib2是Python的官方基础模块,request 是第三方包,功能更强大。
3.urllib2三种下载网页方法:
a. 最简洁的方法,给定一个URL,urllib2.urlopen(url),实现网页下载
import urllib2
#直接请求
response = urllib2.urlopen('http://www.baidu.com')
#获取状态码,如果是200表示获取成功
print response.getcode()
#读取内容
cont = response.read()
b. 第二种,添加data,可以向服务器提交要求用户输入的信息,添加header,可以添加http头部信息。将三个参数url
, data, http header传送给urllib2.Request,仍然使用urllib2.urlopen,以request为参数发送请求。
import urllib2
#创建Request对象
request = urllib2.Request(url)
#添加数据
request.add_data('a', '1')
#添加http的header
request.add_header('User_Agent', 'Mozilla/5.0')
#发送请求获取结果
response = urllib2.urlopen(request)
c. 添加特殊情景的处理器
HTTPCookieProcessor(用户登录才能访问的网页),ProxyHandler(代理才能访问的网页),HTTPSHandler(网页使用HTTPS加密访问),HTTPRedireactHandler(相互自动跳转关系的网页)
import urllib2, cookielib
#创建cookie 容器
cj = cookielib.CookieJar()
#创建opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#给urllib2安装opener
urllib2.install_opener(opener)
#使用带有cookie的urllib2访问网页
response = urllib2.urlopen("http://www.baidu.com")