python3 爬虫4--解析链接
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=美女
就可以实现解码
转载于:https://www.cnblogs.com/daibigmonster/p/7520021.html
python3 爬虫4--解析链接相关推荐
- Python3 爬虫学习笔记 C08【解析库 Beautiful Soup】
Python3 爬虫学习笔记第八章 -- [解析库 Beautiful Soup] 文章目录 [8.1]关于 Beautiful Soup [8.2]Beautiful Soup 的基本使用 [8.3 ...
- Python3网络爬虫实战解析——优美壁纸爬取
在上一博客中,我们已经学会了如何使用Python3爬虫抓取文字,那么在本问中,将通过实例来教大家如何使用Python3爬虫批量抓取图片. (1)实战背景 URL:https://unsplash.co ...
- Python3 爬虫学习笔记 C07 【解析库 lxml】
Python3 爬虫学习笔记第七章 -- [解析库 lxml] 文章目录 [7.1]关于 lxml [7.2]使用 XPath [7.3]查找所有节点 [7.4]查找子节点 [7.5]查找父节点 [7 ...
- 【Python3爬虫】常见反爬虫措施及解决办法(二)...
[Python3爬虫]常见反爬虫措施及解决办法(二) 这一篇博客,还是接着说那些常见的反爬虫措施以及我们的解决办法.同样的,如果对你有帮助的话,麻烦点一下推荐啦. 一.防盗链 这次我遇到的防盗链,除了 ...
- python3爬虫入门教程-有什么好的python3爬虫入门教程或书籍吗?
2018.2.23 更新.现在书也来了,经过一段时间的学习,我把我的爬虫经验写成了一本书,名字叫<Python3网络爬虫开发实战> /> 本书通过多个实战案例详细介绍了 Python ...
- python3爬虫系列教程-Python3爬虫视频学习教程
下面是转发博客内容,挺有用的 大家好哈,现在呢静觅博客已经两年多啦,可能大家过来更多看到的是爬虫方面的博文,首先非常感谢大家的支持,希望我的博文对大家有帮助! 之前我写了一些Python爬虫方面的文章 ...
- Python3 爬虫实战 — 模拟登陆12306【点触验证码对抗】
登陆时间:2019-10-21 实现难度:★★★☆☆☆ 请求链接:https://kyfw.12306.cn/otn/resources/login.html 实现目标:模拟登陆中国铁路12306,攻 ...
- Python3 爬虫学习笔记 C18【爬虫框架 pyspider — 深入理解】
Python3 爬虫学习笔记第十八章 -- [爬虫框架 pyspider - 深入理解] 文章目录 [18.1]启动参数 [18.2]运行单个组件 [18.2.1]运行 Scheduler [18.2 ...
- Python3 爬虫学习笔记 C17【爬虫框架 pyspider — 基本使用】
Python3 爬虫学习笔记第十七章 -- [爬虫框架 pyspider - 基本使用] 文章目录 [17.1]初识 pyspider [17.2]使用 pyspider [17.2.1]主界面 [1 ...
最新文章
- 软件开发流程包含哪些内容
- 【高并发】高并发场景下如何优化加锁方式?看完这篇我确实明白了!!
- java jdwp如何关闭_蚀-本机方法中的致命错误:JDWP没有初始化传输,jvmtiError = AGENT_ERROR_TRANSPORT_INIT(197)...
- mysql zf,mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI的含义
- boost::log::sources::severity_logger用法的测试程序
- linux c之<setjmp.h>使用总结
- ROS入门笔记(十二):动作编程 (C++)
- 【Java】String,StringBuffer和StringBuilder区别
- 孙鑫VC学习笔记:第十四讲 (一) 网络的基本概念
- 70+优秀的前端工具(转)
- java开源项目-六个经典的 SpringBoot 练手项目
- MySQL 8.0.28 忘记密码,重置密码
- Wonderware-InTouch用脚本实现*邮件*发送功能
- 禁忌搜索算法代码注释
- 【matplotlib】plot()kind参数表
- 3dmax怎么渲染全景图,如何使用vray渲染制作360度全景图?
- win7 桌面图标 计算机 灰色,win7系统桌面不显示计算机图标的解决方法
- Java接口测试工具rap_接口文档管理工具-Postman、Swagger、RAP(转载)
- 「C位观察」零信任:企业分布式安全管理架构 | C位
- ALESA切削刀具1355.3904-01
热门文章
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1099:第n小的质数
- 大数据WEB阶段 使用mybatis是多值传递问题
- 大数据WEB阶段 (六)MySql详解(一)
- 【Linux】一步一步学Linux——Bash常用快捷键(11)
- Android 高仿微信6.0主界面 带你玩转切换图标变色
- python函数的组成要素_python函数要素有哪些?这7点是你写好python代码的关键
- DocKer linux Centos 安装DocKer 只需要十步
- python测试用例管理模块_Python的单元测试模块如何检测测试用例?
- AppleScript 快速入门
- sony右键延迟的解决方案