使用 urllib 解析 URL 链接
urllib 库还提供了 parse 模块,它定义了处理 URL 的标准接口,例如实现 URL 各部分的抽取、合并以及链接转换,常用的方法如下:
In []: from urllib.parse import urlparse, urlunparse, urlsplit, urlunsplit, urljoin, parse_qs, parse_qsl, quote, unquote //urlparse()用于对一个URL进行分段
In []: urlparse("http://www.baidu.com/index.html;user?id=5#comment")
Out[]: ParseResult(scheme='http', netloc='www.baidu.com', path='/index.html', params='user', query='id=5', fragment='comment') //urlunparse()用于构造一个URL
In []: urlunparse(['http', 'www.baidu.com', '/index.html', 'user', 'id=5', 'comment'])
Out[]: 'http://www.baidu.com/index.html;user?id=5#comment' //urlsplit() 与 urlparse() 用法一致,但只运回5个结果,params 会合并到 path 中
In []: urlsplit("http://www.baidu.com/index.html;user?id=5#comment")
Out[]: SplitResult(scheme='http', netloc='www.baidu.com', path='/index.html;user', query='id=5', fragment='comment') //urlunsplit() 与 urlunparse() 用法一致,但传入的长度必须是5个
In []: urlunsplit(['http', 'www.baidu.com', '/index.html', 'id=5', 'comment'])
Out[]: 'http://www.baidu.com/index.html?id=5#comment' //urljoin()用于生成链接,第一个参数是基础URL,第二个参数相对URL,连结两个参数生成一个新的链接
In []: urljoin('http://www.baidu.com/', 'FAQ.html')
Out[]: 'http://www.baidu.com/FAQ.html' //urlencode()用于序列化GET请求参数,通常用来构造请求链接
In []: base_url = "http://www.baidu.com"
In []: params = {'name': 'Tom', 'age': }
In []: base_url + urlencode(params)
Out[]: 'http://www.baidu.comname=Tom&age=18' //parse_qs()用于反序列化GET请求参数
In []: query = "name=Tom&age=18"
In []: parse_qs(query)
Out[]: {'name': ['Tom'], 'age': ['']} //parse_qsl()用于将参数转化为元组组成的列表
In []: query = "name=Tom&age=18"
In []: parse_qsl(query)
Out[]: [('name', 'Tom'), ('age', '')] //quote()用于对URL进行编码,将内容转化为URL编码的格式
In []: "http://www.baidu.com/" + quote("你好")
Out[]: 'http://www.baidu.com/%E4%BD%A0%E5%A5%BD' //unquote()用于对URL进行解码
In []: unquote("http://www.baidu.com/%E4%BD%A0%E5%A5%BD")
Out[]: 'http://www.baidu.com/你好'
使用 urllib 解析 URL 链接的更多相关文章
- js篇-解析url链接里面的参数名和参数值
项目背景是,链接为:https://paladin.pingan.com.cn/jf/?appId=PA00200000000_01_APP&id=123456#/fundRank 要求拿到: ...
- Python 的 urllib.parse 库解析 URL
Python 中的 urllib.parse 模块提供了很多解析和组建 URL 的函数. 解析url urlparse() 函数可以将 URL 解析成 ParseResult 对象.对象中包含了六 ...
- iOS解析新浪微博的@##以及URL链接并展示
最近在做一个跟微博相关的应用.其中涉及到了对微博中@.##以及URL链接的解析与展示.分享一下个人处理的方式,希望对需要的人有所帮助. 最终的展现效果: 首先,第一步是你得从纯文本中找到它们.毫无疑问 ...
- URL链接后面的参数解析,与decode编码解码;页面刷新回到顶部jquery
function request() { var urlStr = location.search; ) { theRequest = []; return; } urlStr = urlStr.su ...
- Python 网络爬虫 009 (编程) 通过正则表达式来获取一个网页中的所有的URL链接,并下载这些URL链接的源代码
通过 正则表达式 来获取一个网页中的所有的 URL链接,并下载这些 URL链接 的源代码 使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 ...
- 详解Node解析URL网址
前提给大家声明一下,我操作的环境是Mac终端下操作的.(前提是你先要下载好node.js) 说道URL 恐怕都不陌生,但是要说URL,就 必须先说下URI URI是统一资源标识符,是一个用于标识某一互 ...
- PHP的学习--解析URL
PHP中有两个方法可以用来解析URL,分别是parse_url和parse_str. parse_url 解析 URL,返回其组成部分 mixed parse_url ( string $url [, ...
- django反向解析URL和URL命名空间
django反向解析URL和URL命名空间 首先明确几个概念: 1.在html页面上的内容特别是向用户展示的url地址,比如常见的超链接,图片链接等,最好能动态生成,而不要固定. 2.一个django ...
- python模块之HTMLParser抓页面上的所有URL链接
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser抓页面上的所有URL链接 import urllib #MyParse ...
随机推荐
- 关于Unity中Vector2和Vector3的使用
Vector2是用来定义和描述2D游戏内部的一些参数,像刚体的速度等等 Vector3是 1.鼠标点击屏幕后要转化为3D坐标的时候用到的定义和描述 2.两个物体之间的相对距离,或者说偏移量的变量类型
- 如何在Windows 10安装和使用Linux的Bash shell
转载自:百度经验 Windwos 10 的周年更新为开发人员提供一个大的新功能:一个完整的,基于Ubuntu的Bash shell中,可以直接在Windows上运行Linux软件. 这使得“Linux ...
- JDBC的MySQL配置properties文件
参考: http://sgq0085.iteye.com/blog/1262469 e.g. 常用数据库URLDerby: jdbc:derby://localhost:1527/COREJAVA; ...
- 使用tomcat搭建centos的yum源
最近在折腾大数据,需要搭建一个yum源.一般的做法是在CentOS中安装httpd,然后将rpm包放入/var/www/html下面,再执行[createrepo .]即可. 不过虚拟机对传文件终归是 ...
- 第三百四十节,Python分布式爬虫打造搜索引擎Scrapy精讲—css选择器
第三百四十节,Python分布式爬虫打造搜索引擎Scrapy精讲—css选择器 css选择器 1. 2. 3. ::attr()获取元素属性,css选择器 ::text获取标签文本 举例: extr ...
- svn -- svn安装与配置
1.SVN分为服务器端与客户端 l 服务器端:VisualSVN SubVersion l 客户端:TortoiseSVN server http://www.visualsvn.com/ cli ...
- Java EE的十三个技术规范
Java 是一种非常棒的语言,健壮,跨平台运行,屏蔽了具体的平台环境的要求,也就是说只要支持java 虚拟机,就可以运行java程序. 下面,我们一起学习一下J2EE的十三种技术规范. 一.JDBC: ...
- 随手记录一下 Vue 下来框搜索 select2 封装成vue
引入布局文件 <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css& ...
- Lombok简化Java代码的好工具
lombok 的官方网址:http://projectlombok.org/ 关于lombok 的介绍,有几篇帖子,写得都很好 比如 http://www.blogjava.net/fancydeep ...
- Linux下的rename命令
Dos/Windows下,对文件改名用rename.而书上说,Linux下对文件或目录改名该用mv.我一直也是这样做的,却忽略了Linux下也有个叫rename的命令.都是rename,但功能上就有点 ...