urllib2模块使用
urllib2库是python中自带的用来进行网络抓取的库,在python3中 urllib2库被改为urllib.request
urllib2中常用方法:
1.urlopen :向指定服务器发送请求,并返回服务器相应的类文件对象
2.request:当需要增加http报头等较复杂的操作的时候,创建request实例作为urlopen的参数,url地址作为request的参数,如下
# urllib2_request.py import urllib2 # url 作为Request()方法的参数,构造并返回一个Request对象 request = urllib2.Request("http://www.baidu.com") # Request对象作为urlopen()方法的参数,发送给服务器并接收响应 response = urllib2.urlopen(request) html = response.read() print html
新建Request实例,除了必须要有 url 参数之外,还可以设置另外两个参数:
-
data(默认空):是伴随 url 提交的数据(比如要post的数据),同时 HTTP 请求将从 "GET"方式 改为 "POST"方式。
-
headers(默认空):是一个字典,包含了需要发送的HTTP报头的键值对。
在 HTTP Request 中加入特定的 Header,来构造一个完整的HTTP请求消息。
在大部分时候urllib会与urllib2共同使用,主要是为了使用urllib.encode()方法,同时通过urllib2的方法伪装user-agent字段,从而完成爬虫的第一层伪装。