目录
2.2.5、urllib.request.Request()抽象类
一、python urllib简介
Urllib是一个python在抓取网络URL资源使用的http请求库,是用来获取和处理http响应和url基础框架,其中包含了四个模块,分别是:urllib.request(请求URL,作用在打开和读取URL操作)、urllib.error(异常处理)、urllib.parse(URL解析,爬虫程序中处理URL地址)、urllib.robotparser(解析robot.txt文件,判断目标站点可爬虫范围)
二、使用方法
2.1、对应库引用
2.2、request模块
2.2.1、打开站点并返回相应内容
使用urllib.request.urlopen(url,data,timeout)方法得到一个HTTP类型对象(urlopen可以发送GET请求,也可以发送POST请求)
Url—请求地址;
data—发送到服务器的数据对象(必须用urlencode()进行编码再上传,该参数必须为bytes类型数据);
timeout—超时时间;
2.2.2、返回网页状态码
通过print(request.urlopen(“对应URL地址”).getcode())输出当前URL地址
2.2.3、获取请求头内容
通过urlopen(‘URL连接’).getheader(‘报文头Key’)实现
2.2.4、获取其余相关属性
Msg 信息属性/ version 版本属性/ status 状态属性
2.2.5、urllib.request.Request()抽象类
扩展请求配置时使用Request()类,格式如下:
def __init__(self, url, data=None, headers={},
origin_req_host=None, unverifiable=False,
method=’POST’/’GET’)
利用http://www.httpbin.org测试http请求和响应的各种信息。
2.3、parse模块
该模块用于解析url数据,格式如下:
Urllib.parse.urlparse(urlstring, scheme = ‘ ’,allow_fragments=True)(返回结果:ParsePesult对象)
Urlstring:对应URL(统一资源定位符)地址
Scheme:协议类型(http/https/rtsp/telnet等)
Netloc:打印域名和端口
Allow_fragments:URL中fragment部分,属于片段标志
urlunparse()将队列拼成完整url地址
Urljoin(参数1,参数2)连接两个参数的url, 将第二个参数中缺的部分用第一个参数的补齐,如果第二个有完整的路径,则以第二个为主
urlencode()针对字典进行编码
Quote()针对字符串进行编码
Unquote()针对字符串进行解码
2.4、error模块
error模块用来接收urllib.Request产生的异常,一共存在两种方法:URLError和HTTPError两个,前者针对错误URL进行告警,后者针对正确url中错误请求资源进行报错
2.5、robotparser模块
robotparser模块提供了一个RobotFileParser类,可以判断哪些页面可以抓取,哪些页面不能抓取。