1.urlparse()

属于urllib.parse

在urlparse世界里面,一个标准的URL链接格式如下

scheme://nrtlooc/path;paramters?query#fragment

所以,一个url='http://www.baidu.com/index.html;user?id=5#comment'

我们使用urlparse的话,就可以被分成6个部分

(scheme='http',netloc='www.baidu.com',path='index.html'paramters='user'.query='id=5',fragment='comment')

具体操作如下:

res=urlparse('https://www.baidu.com/baidu?wd=query&tn=monline_dg&ie=utf-8')

print(res)

urlparse还有带参数的是使用方法

res=urlparse(urlstring,scheme=' ',allow_fragment=True)

scheme是默认的协议,如果urlstring没有带协议,则使用scheme中的协议,若是有,则仍然使用urlstring中协议

allow_fragment即是否忽略fragment,如果是False,fragment就被解析为path、paramenters或者query中的一部分

2,urlunparse()

属于urllib.parse

正如其名字所示,ulrunparse()是urlparse()的逆过程

例如:data=['http','www.baidu.com','index.html','user','a=6','comment']

print(urlunparse(data))

这样就完成了urlstring的构造

3urlsplit()

from urllib.parse import urlsplit

与urlparse类似,但urlsplict把urlstirng分割成5个部分,其中少了paramters

res=urlsplict('http://www.baidu.com/index.html;user?id=5#comment')

print(res)

4urlunsplit()

用法与urlunparse()类似

5urljoin()

属于urllib.parse

urljoin()也是一种生成urlstring的方式,这种生成方法是提供两个链接,分别是base_url,和新链接,分析base_url中的scheme,netloc,path这三个部分,然后对新链接缺失的部分进行补充,新链接里面若是有,则不补充,不提换,最后返回新链接,举个例子

print(urljoin('http://www.baidu.com',‘wd=query&tn=monline_dg&ie=utf-8‘))

返回结果是:

http://www.baidu.com/wd=query&tn=monline_dg&ie=utf-8
6urlencode()

from urllib,parse import urlencode

可以将字典类型转换为url参数举例来说

param={'name':'lihua','age':'23'}

base_url='http://www.baidu.com'

url=base_url+urlencode(param)

print(url)

7parse_qs()

parse_qs()是parse_encode()的逆过程(为什么名字的区别这么大,我也是不得其解)

from urllib.parse import parse_qs

query='wd=query&tn=monline_dg&ie=utf-8'

print(parse_qs(query))

输出结果是:{'tn': ['monline_dg'], 'wd': ['query'], 'ie': ['utf-8']}
这样就转换称为字典类型了

8pars_qsl()

from urllib.pase  import parse_qsl:将参数转换成为元组组成的列表

query='wd=query&tn=monline_dg&ie=utf-8'

print(parse_qsl(query))

输出结果:[('wd', 'query'), ('tn', 'monline_dg'), ('ie', 'utf-8')]

9quote

quote()方法可以将内容转换为URL编码格式,有时候URL带中文可能导致乱码,这样就需要quote

from urllib。parse import quote

keyword='美女'

url='https://www.baidu.com/s?wd='+quote(keyword)

print(url)

输出结果:https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3

10unquote()

对URL进行解码

from urllib.parse import unquote

url='https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3'

print(unquote(url))

输出结果:https://www.baidu.com/s?wd=美女
就可以实现解码

python3 爬虫4--解析链接的更多相关文章

  1. python爬虫之解析链接

    解析链接 1. urlparse() & urlunparse() urlparse() 是对url链接识别和分段的,API用法如下: urllib.parse.urlparse(urlstr ...

  2. python3爬虫中文乱码之请求头‘Accept-Encoding’:br 的问题

    当用python3做爬虫的时候,一些网站为了防爬虫会设置一些检查机制,这时我们就需要添加请求头,伪装成浏览器正常访问. header的内容在浏览器的开发者工具中便可看到,将这些信息添加到我们的爬虫代码 ...

  3. python3爬虫系列19之反爬随机 User-Agent 和 ip代理池的使用

    站长资讯平台:python3爬虫系列19之随机User-Agent 和ip代理池的使用我们前面几篇讲了爬虫增速多进程,进程池的用法之类的,爬虫速度加快呢,也会带来一些坏事. 1. 前言比如随着我们爬虫 ...

  4. python3爬虫(4)各种网站视频下载方法

    python3爬虫(4)各种网站视频下载方法原创H-KING 最后发布于2019-01-09 11:06:23 阅读数 13608 收藏展开理论上来讲只要是网上(浏览器)能看到图片,音频,视频,都能够 ...

  5. 笔趣看小说Python3爬虫抓取

    笔趣看小说Python3爬虫抓取 获取HTML信息 解析HTML信息 整合代码 获取HTML信息 # -*- coding:UTF-8 -*- import requests if __name__ ...

  6. 爬虫Larbin解析(一)——Larbin配置与使用

    介绍 功能:网络爬虫 开发语言:c++ 开发者:Sébastien Ailleret(法国) 特点:只抓取网页,高效(一个简单的larbin的爬虫可以每天获取500万的网页) 安装 安装平台:Ubun ...

  7. python爬虫数据解析之BeautifulSoup

    BeautifulSoup是一个可以从HTML或者XML文件中提取数据的python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. BeautfulSoup是python爬虫三 ...

  8. Python3爬虫系列:理论+实验+爬取妹子图实战

    Github: https://github.com/wangy8961/python3-concurrency-pics-02 ,欢迎star 爬虫系列: (1) 理论 Python3爬虫系列01 ...

  9. Python3爬虫(十八) Scrapy框架(二)

    对Scrapy框架(一)的补充 Infi-chu: http://www.cnblogs.com/Infi-chu/ Scrapy优点:    提供了内置的 HTTP 缓存 ,以加速本地开发 .   ...

随机推荐

  1. pytest(10)-常用执行参数说明

    pytest单元测试框架中可以使用命令行及代码pytest.main()两种方式执行测试,且可以加入各种参数来组织执行测试.接下来我们来了解常用的执行参数的含义及其用法. pytest中的执行参数根据 ...

  2. 痞子衡嵌入式:介绍i.MXRT定时器PIT的多通道链接模式及其在coremark测试工程里的应用

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT定时器PIT的多通道链接模式及其在coremark测试里的应用. 早在 2018 年 i.MXRT 系列跨界处理器刚推出的时 ...

  3. pagehelper 自循环启动报错

    问题原因 问题产生的原因是 ServiceA实现类中引入了ServiceB,而在ServiceB实现类中又引入了ServiceA,导致循环依赖注入. 其实在代码开发过程中应该尽量避免这种操作的出现,即 ...

  4. [LeetCode]1281. 整数的各位积和之差

    给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差. 示例 1: 输入:n = 234 输出:15 解释: 各位数之积 = 2 * 3 * 4 = 24 各位数之和 = ...

  5. 使用Hot Chocolate和.NET 6构建GraphQL应用(9) —— 实现Mutate更新数据

    系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 在上一篇文章中,我们演示了如何使用Hot Chocolate进行GraphQL的Mutate新增数据,这篇文 ...

  6. node + express 搭建服务器,修改为自动重启服务器

    1.使用express搭建一个项目,步骤如下(安装node步骤已省略) a.全局安装express-generator和express npm i express-generator -g npm i ...

  7. 想找好用的BI软件?看这一篇就够了:2021年好用的BI软件推荐

    很多厂商活跃在商业智能(下面称BI)领域.事实上,能够满足用户需要的BI产品和方案必须建立在稳定.整合的平台之上,该平台需要提供用户管理.安全性控制.连接数据源以及访问.分析和共享信息的功能.那么,有 ...

  8. Ng ML笔记

    目录 一.线性回归 1,假设函数.代价函数,梯度下降 2,特征处理 3,代价函数和学习速率 4,特征和多项式回归 5,正规方程 二.逻辑回归(Logistic Regression,LR) 1,假设函 ...

  9. JZ-057-二叉树的下一个结点

    二叉树的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 题目链接: 二叉树的下一个结点 代 ...

  10. JZ-017-树的子结构

    树的子结构 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 题目链接: 树的子结构 代码 /** * 标题:树的子结构 * 题目描述 * 输入两棵 ...