基本库的使用——urllib&requests

一、request模块

HTTP请求模块,可以用来模拟发送请求。

urlopen() 实现最基本请求的发起
Request类 可以设置data,headers,method等
Opener

Opener可以使用open()方法,返回类型和urlopen差不多,

利用Handler来构建

二、error模块

异常处理模块

URLError 是error异常模块的基类,由request模块生的异常都可以通过捕获这个类来处理
HTTPError

是URLError的子类,专门处理HTTP请求错误,比如认证请求失败

code,reason,headers

 

三、parse

工具模块,实现URL各部分的抽取,合并以及链接转换

urlparse()

该方法可以实现URL的识别和凤duan

返回结果是一个ParseResult 类型的对象,它包含6 个部分,分别是scheme 、netloc 、path 、params 、query 和fragment 

urlunparse() 实现URL 的构造
urlsplit() 这个方法和urlparse ()方法非常相似,只不过它不再单独解析pa rams 这一部分,只运回5 个结果。上面例子中的para ms 会合并到path 中
urlunsplit() 与urlunparse()类似
urljoin() 我们可以提供一个base_url(基础链接)作为第一个参数,将新的链接作为第二个参数,该方法会分析base_url 的scheme 、netloc 和path这3 个内容并对新链接缺失的部分进行补充,最后返回结果
urlencode() 将事先定义的字典序列化为GET 请求参数。
 
parse_qs() 有了序列化,必然就有反序列化。转回字典
parse_qsl() 于将参数转化为元组组成的列表
quote() 将内容转化为URL 编码的格式
unquote() 进行URL 解码

------------------------------------------------------------------------------------------------------------------------------------------------------------------

了解了urllib 的基本用法,但是其中确实有不方便的地方,比如处理网页验证和Cookies 时,需要写Opener和Handler来处理。为了更加方便地实现这些操作,就有了更为强大的库requests。

基本用法

get()

对应urllib中的urlopen().

构建参数:params,headers

post() 提交的数据存储在data中
响应

text,content获取响应内容,status_code,headers,cookis等

高级用法

文件上传 requests.post(”http://httpbin.org/post”, files=files)
Cookies

获取:print(r.cookies)

设置:设置到Headers

Session 利用Session ,可以做到模拟同一个会话而不用担心Cookies 的问题。它通常用于模拟登录成功之后再进行下一步的操作。
SSL 证书验证 使用veri干y 参数控制是否检查此证书
代理设置 用到proxies 参数
超时设置 用到timeout 参数。这个时间的计算是发归请求到服务器返回响应的时间
身份认证  
Prepared Request  

你可能感兴趣的:(爬虫)