python爬虫开发 urlparse、parse_qs、urlencode、quote、unquote、urljoin 用法总结
urllib.parse 这个模块在爬虫开发过程中使用地频率非常高,这里总结了一些常用用法
参考标准库文档:https://docs.python.org/zh-cn/3.7/library/urllib.parse.html
该模块定义了一个标准接口,用于URL字符串按组件(协议、网络位置、路径等)分解,或将组件组合回URL字符串,并将 "相对URL "转换为给定 "基础URL "的绝对URL。
The module has been designed to match the Internet RFC on Relative Uniform Resource Locators. It supports the following URL schemes: file, ftp, gopher, hdl, http, https, imap, mailto, mms, news, nntp, prospero, rsync, rtsp, rtspu, sftp, shttp, sip, sips, snews, svn, svn+ssh, telnet, wais, ws, wss.
urllib.parse 模块定义的函数可分为两个主要门类: URL 解析和 URL 转码。
urlparse(url解析)
In [16]: from urllib.parse import urlparseIn [17]: u = urlparse(url)In [18]: u
Out[18]: ParseResult(scheme='http', netloc='example.com', path='/cxs', params='', query='name=cxs', fragment='age')
补充一下 query
和 params
的区别:
query方式生成的url为
/xx?id=id
,params方式生成的url为xx/id
当path不为空时只能使用query方式
parse_qs(query解析)
In [19]: from urllib.parse import parse_qsIn [20]: query='a=1&b=2'...: parse_qs(query)Out[20]: {'a': ['1'], 'b': ['2']}
注意一点,加号
会被解码替换成 空格
,比如下面的例子:
In [21]: query='a=1&b=2&c=1+2'...: parse_qs(query)Out[21]: {'a': ['1'], 'b': ['2'], 'c': ['1 2']}
urlencode(query转换)
In [22]: from urllib.parse import urlencodeIn [23]: query = {...: 'name': 'cxs',...: 'age': 18,...: }...: urlencode(query)Out[23]: 'name=cxs&age=18'
quote & quote_plus(url编码)
In [25]: from urllib.parse import quoteIn [26]: quote('a&b/c') # 未编码斜杠
Out[26]: 'a%26b/c'In [27]: from urllib.parse import quote_plusIn [28]: quote_plus('a&b/c') # 编码了斜杠
Out[28]: 'a%26b%2Fc'
unquote & unquote_plus(url解码)
In [29]: from urllib.parse import unquoteIn [30]: unquote('a%26b%2Fc9+2') # 不解码加号
Out[30]: 'a&b/c9+2'In [31]: from urllib.parse import unquote_plusIn [32]: unquote_plus('a%26b%2Fc9+2') # 把加号解码为空格
Out[32]: 'a&b/c9 2'
urljoin(url拼接)
In [1]: from urllib.parse import urljoinIn [35]: url = "http://www.cxs.com"
In [36]: path = "/item/name"In [37]: urljoin(url, path)
Out[37]: 'http://www.cxs.com/item/name'
python爬虫开发 urlparse、parse_qs、urlencode、quote、unquote、urljoin 用法总结相关推荐
- urlencode quote unquote (url 中带中文参数)
目录: urlencode & quote & unquote (url 中带中文参数) python httplib urllib urllib2区别(一撇) 当url地址含有中文或 ...
- python爬虫项目实例-Python爬虫开发与项目实战
Python爬虫开发与项目实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1MFexF6S4No_FtC5U2GCKqQ 提取码:gtz1 复制这段内容后打开百度 ...
- python爬虫开发环境_python爬虫开发教程下载|Python爬虫开发与项目实战(范传辉 著)pdf 完整版_ - 极光下载站...
Python爬虫开发与项目实战pdf扫描版下载.Python爬虫开发是一个Pthyon编程语言与HTML基础知识引领读者入门知识,重点讲述了云计算的相关内容及其在爬虫中的应用,进而介绍如何设计自己的爬 ...
- Python爬虫开发教程,一看就懂!
现在Python语言大火,在网络爬虫.人工智能.大数据等领域都有很好的应用.今天我向大家介绍一下Python爬虫的一些知识和常用类库的用法,希望能对大家有所帮助. 其实爬虫这个概念很简单,基本可以分成 ...
- 《Python爬虫开发与项目实战》——第3章 初识网络爬虫 3.1 网络爬虫概述
本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第3章,第3.1节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第3章 初识网 ...
- 《Python爬虫开发与项目实战》——1.6 小结
本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第1章,第1.6节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 1.6 小结 ...
- 《Python爬虫开发与项目实战》——第1章 回顾Python编程 1.1 安装Python
本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第1章,第1.1节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第1章 回顾P ...
- Python爬虫开发从入门到实战
Python爬虫开发从入门到实战(微课版) 第1章 绪论 爬虫的主要目的是获取网页内容并解析.只要能达到这个目的,用什么方法都没有问题. 关于获取网页,本书主要介绍了Python的两个第三方模块,一个 ...
- 入门Python爬虫开发-欧阳桫-专题视频课程
入门Python爬虫开发-443人已学习 课程介绍 通过本课程的学习,你将掌握如何使用Python的基础类库,实现对邮箱.图片.金融数据的爬取,以及什么是深度爬取和广度爬取 课程收益 ...
- 笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫
笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫 本资料为最新整理高清带目录pdf,百度网盘下载~~~ 本资料为最新整理高清带目 ...
最新文章
- mac 端口转发方案
- js中substr,substring,indexOf,lastIndexOf的用法
- CSS------li中的宽和高无法修改问题
- java中的强制类型转换:int和byte
- 移植 uC/OS-III 到 STM32
- Sqlserver2012 根据数据库mdf文件生成log文件,解决无法附加mdf文件
- git 开发功能分支标准流程
- java学习之自定义异常
- core dump python_python 源码笔记 ---- freeblock
- 减小编译bin文件大小_两个奇技淫巧,将 Docker 镜像体积减小 99%
- [原]初次运用数据缓存机制
- 如何快速学python
- 【转载】Synopsys 推荐的 UPF 流程简介
- “accountsservice:依赖: libaccountsservice0(= 0.6.40-2ubuntu11.3)但是0.6.40-2ubuntu11.6已经安装”解决方法
- python数据分析——简单且有用的代码
- Xcode 10 无开发者账号通过无线网络真机调试
- 计算机已达到最大连接数
- Win7中解决无法卸载/升级 VS2008、无法输入序列号的问题
- 十进制有限小数如何以二进制保存而不会变成无限小数
- 《我的视频我做主:Premiere Pro CS5实战精粹》——导读
热门文章
- VB中.frm .frx .vbp .vbw .scc有什么作用
- 【ELM分类】基于matlab鲸鱼算法优化核极限学习机数据分类【含Matlab源码 2012期】
- 微信40125错误的坑
- php里用钢笔画曲线,PS如何使用钢笔工具进行抠图
- Glide用法总结--缓存与下载方法
- 下列哪个网站还未推出微博服务器,新浪微博笔试题与答案
- python下面代码是什么意思_python的入门,代码,什么意思?
- 计算机音乐我还是曾经那个少年,我还是从前那个少年是什么歌
- 利用Power BI制作分级地图报表
- 加载类型库/DLL 时出错。 (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY)