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')

补充一下 queryparams 的区别:

  • 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 用法总结相关推荐

  1. urlencode quote unquote (url 中带中文参数)

    目录: urlencode & quote & unquote (url 中带中文参数) python httplib urllib urllib2区别(一撇) 当url地址含有中文或 ...

  2. python爬虫项目实例-Python爬虫开发与项目实战

    Python爬虫开发与项目实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1MFexF6S4No_FtC5U2GCKqQ 提取码:gtz1 复制这段内容后打开百度 ...

  3. python爬虫开发环境_python爬虫开发教程下载|Python爬虫开发与项目实战(范传辉 著)pdf 完整版_ - 极光下载站...

    Python爬虫开发与项目实战pdf扫描版下载.Python爬虫开发是一个Pthyon编程语言与HTML基础知识引领读者入门知识,重点讲述了云计算的相关内容及其在爬虫中的应用,进而介绍如何设计自己的爬 ...

  4. Python爬虫开发教程,一看就懂!

    现在Python语言大火,在网络爬虫.人工智能.大数据等领域都有很好的应用.今天我向大家介绍一下Python爬虫的一些知识和常用类库的用法,希望能对大家有所帮助. 其实爬虫这个概念很简单,基本可以分成 ...

  5. 《Python爬虫开发与项目实战》——第3章 初识网络爬虫 3.1 网络爬虫概述

    本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第3章,第3.1节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第3章 初识网 ...

  6. 《Python爬虫开发与项目实战》——1.6 小结

    本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第1章,第1.6节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 1.6 小结 ...

  7. 《Python爬虫开发与项目实战》——第1章 回顾Python编程 1.1 安装Python

    本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第1章,第1.1节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第1章 回顾P ...

  8. Python爬虫开发从入门到实战

    Python爬虫开发从入门到实战(微课版) 第1章 绪论 爬虫的主要目的是获取网页内容并解析.只要能达到这个目的,用什么方法都没有问题. 关于获取网页,本书主要介绍了Python的两个第三方模块,一个 ...

  9. 入门Python爬虫开发-欧阳桫-专题视频课程

    入门Python爬虫开发-443人已学习 课程介绍         通过本课程的学习,你将掌握如何使用Python的基础类库,实现对邮箱.图片.金融数据的爬取,以及什么是深度爬取和广度爬取 课程收益 ...

  10. 笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫

    笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫 本资料为最新整理高清带目录pdf,百度网盘下载~~~ 本资料为最新整理高清带目 ...

最新文章

  1. mac 端口转发方案
  2. js中substr,substring,indexOf,lastIndexOf的用法
  3. CSS------li中的宽和高无法修改问题
  4. java中的强制类型转换:int和byte
  5. 移植 uC/OS-III 到 STM32
  6. Sqlserver2012 根据数据库mdf文件生成log文件,解决无法附加mdf文件
  7. git 开发功能分支标准流程
  8. java学习之自定义异常
  9. core dump python_python 源码笔记 ---- freeblock
  10. 减小编译bin文件大小_两个奇技淫巧,将 Docker 镜像体积减小 99%
  11. [原]初次运用数据缓存机制
  12. 如何快速学python
  13. 【转载】Synopsys 推荐的 UPF 流程简介
  14. “accountsservice:依赖: libaccountsservice0(= 0.6.40-2ubuntu11.3)但是0.6.40-2ubuntu11.6已经安装”解决方法
  15. python数据分析——简单且有用的代码
  16. Xcode 10 无开发者账号通过无线网络真机调试
  17. 计算机已达到最大连接数
  18. Win7中解决无法卸载/升级 VS2008、无法输入序列号的问题
  19. 十进制有限小数如何以二进制保存而不会变成无限小数
  20. 《我的视频我做主:Premiere Pro CS5实战精粹》——导读

热门文章

  1. VB中.frm .frx .vbp .vbw .scc有什么作用
  2. 【ELM分类】基于matlab鲸鱼算法优化核极限学习机数据分类【含Matlab源码 2012期】
  3. 微信40125错误的坑
  4. php里用钢笔画曲线,PS如何使用钢笔工具进行抠图
  5. Glide用法总结--缓存与下载方法
  6. 下列哪个网站还未推出微博服务器,新浪微博笔试题与答案
  7. python下面代码是什么意思_python的入门,代码,什么意思?
  8. 计算机音乐我还是曾经那个少年,我还是从前那个少年是什么歌
  9. 利用Power BI制作分级地图报表
  10. 加载类型库/DLL 时出错。 (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY)