基本库的使用——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 
在爬虫中的区别和使用建议是什么? 回答: Python中有两个常用于爬虫的,分别是urllib和requests。在Python 2中,urllib和urllib2同时存在,分别负责不同的功能,有些功能需要从urllib中导入。而在Python 3中,urllib已经整合了urllib2的功能,只保留了urllib一个标准,并且在功能和易用性上进行了改进。另外,还有一个值得注意的是,虽然urllib在人性化方面和requests存在差距,但urllib是Python标准,自带安装,无需额外安装。而requests需要单独安装,但它更为便捷,可以直接构造get、post请求并发起,相比之下urllib.request只能先构造请求,再发起。因此,对于爬虫任务,建议使用requests,它更易用且功能更丰富。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python urllib, urllib2, urllib3 以及 requests 的区别 (附个人一些看法)](https://blog.csdn.net/Likianta/article/details/126705631)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [浅谈Python两大爬虫——urllib和requests区别](https://blog.csdn.net/pdcfighting/article/details/117049893)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值