urllib爬虫库内模块与方法详解【重点】

   日期:2024-12-25    作者:qishuixin 移动:http://oml01z.riyuangf.com/mobile/quote/16456.html

🕶️师兄简介:机械专业,通过自学成功进入IT领域,求学期间实现经济独立,对自学、兼职、计算机、学习规划等有独到见解!「点击了解更多」

urllib爬虫库内模块与方法详解【重点】


🤖师兄致力解决在大学生活与学习中遇到的各种问题.


🎁 公众号「渣师兄」内回复「渣学」可获得超 5T 的新生见面礼


🔗官方网站: 渣学网 →「zhaxueit.cn」→ 大学生活与学习一站式解决方案.


🙏找师兄帮忙「无偿」请➕💓:zhaxueit

📓进资源群「每日分享」【免费】(坑位有限)也请➕💓:zhaxueit 并备注「进群」

👀个人主页@渣师兄 ,欢迎关注、私信师兄


🐐 登高必自卑,行远必自迩.
🍇 我始终坚信越努力越幸运
⭐️ 那些打不倒我们的终将会让我们变得强大
🍑 希望在编程道路上深耕的小伙伴都会越来越好



urllib.request 库内的 urlopen)方法功能

功能:向目标 url 发送一个请求,并返回一个相应对象

方法参数

url:发送请求的目标网站(网站一定要写全 例如 http://www.baidu.com/ ,http不能忘以及最后的/

timeout:设置请求时间,超过设置的请求时间将抛出异常

语法

注意:res_obj 只是网站响应的对象,不是网站相应的数据

urllib.request.urlopen)方法返回的响应对象的方法

响应对象.read:获取网站响应的源代码(bytes数据格式)【字节串数据格式】

响应对象.read.decode(编码格式:获取网站响应的源代码(string数据格式)【字符串数据格式】

响应对象.geturl:获取实际返回响应数据的网站url(考虑到重定向问题

响应对象.getcode:获取网站的http响应状态码

注意: bytes数据与string数据不一样,bytes是以字节为单位,string是以字符为单位, string通过encode)编码可转换为bytes,bytes可通过decode)解码转换为string,bytes数据格式为 b“数据”,string数据格式为 “数据”

图示

响应对象的.read)方法

响应对象的.read).decode)方法

响应对象的.geturl)与响应对象的.getcode)方法

怎么查看程序向网站发送请求时标头的 User-Agent

直接向下面 url 地址发送请求即可查看请求协议标头的 User-Agent

网站:http://httpbin.org/get

图示

浏览器发送请求查看 User-Agent

python的urllib库发送请求查看 User-Agent

urllib.request库内的 Request)方法功能

功能:包装请求标头信息(一般是 User-Agent,并且返回这个包装好的请求头对象,用于向 url 发送请求

语法

参数

url:待请求的链接地址

headers:伪装的请求标头信息

注意事项:Request方法并没有向网站发送请求,而是伪装请求标头,urlopen方法才向目标网站发送请求并且接收响应数据

截图

目标

1:掌握搜索关键字 url 地址的组成部分

2:掌握向目标查询关键字地址发送请求的注意事项

3:urllib.parse.urlencode)方法详解

4:urllib.parse.quote)方法详解

5:掌握 urllib.parse库内的 urlencode 方法以及 quote 方法的区别~

搜索关键字 url 地址的组成部分

组成:协议项+域名+数据库资源路径+查询参数

图示

注意:其实很多查询参数都没有用,上面的 url 可简化为 https://www.baidu.com/s?wd=美女

向查询关键字地址服务器发送请求的注意事项

什么是查询关键字地址:就是搜索相应关键字所对应的url地址,例如在百度上查询美女的url地址如下

https://www.baidu.com/s?wd=美女

向查询关键字地址服务器发送请求的注意事项:需要将url地址内中文 编码后 才可以向服务器发送请求

示例

编码前URL地址:https://www.baidu.com/s?wd=美女

编码后URL地址:https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3

注意:编码后三个%对应一个中文字符,例如%E7%BE%8E就对应 美 这个中文字符

urllib.parse.urlencode)方法详解

功能:将查询参数内的中文进行编码,并返回编码后的查询参数(返回多个编码后的查询参数时默认返回 &

语法:返回编码后查询参数 = urllib.parse.urlencode({查询参数1:待编码值1,查询参数2:待编码值2……….}

语法参数

字典:字典内存放需要编码的查询参数,例如查询参数为 wd=美女 就这么写 {“wd”:“美女”}

语法参数返回值

params 就是 wd=%E7%BE%8E%E5%A5%B3

注意事项:urllib.parse.urlencode)方法只返回编码后的查询参数,并不是整个url地址,需要进行字符串拼接才能向目标url服务器发送请求

图示

urllib.parse.quote)方法详解

功能:对查询参数内的中文进行编码,并且返回这个中文编码后的字符串

语法:编码后的中文字符串 = urllib.parse.quote(”查询参数中的中文关键字“

例如:params = urllib.parse.quote(”美女“) params 就是 %E7%BE%8E%E5%A5%B3

方法参数

查询参数内的中文:只是中文,没有相对应的 wd 等

注意事项:这个方法只返回编码后的中文字符,连键都不返回需要自己写

图示

urllib.parse库内的 urlencode 方法以及 quote 方法的区别~

区别

1:参数不同,urlencode参数为字典,quote参数是中文字符串

2:返回值不同,urldecode返回的是键与值,例如 wd=%E7%BE%8E%E5%A5%B3 ,quote方法返回的只有值,例如 %E7%BE%8E%E5%A5%B3


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号