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 链接的更多相关文章

  1. js篇-解析url链接里面的参数名和参数值

    项目背景是,链接为:https://paladin.pingan.com.cn/jf/?appId=PA00200000000_01_APP&id=123456#/fundRank 要求拿到: ...

  2. Python 的 urllib.parse 库解析 URL

      Python 中的 urllib.parse 模块提供了很多解析和组建 URL 的函数. 解析url urlparse() 函数可以将 URL 解析成 ParseResult 对象.对象中包含了六 ...

  3. iOS解析新浪微博的@##以及URL链接并展示

    最近在做一个跟微博相关的应用.其中涉及到了对微博中@.##以及URL链接的解析与展示.分享一下个人处理的方式,希望对需要的人有所帮助. 最终的展现效果: 首先,第一步是你得从纯文本中找到它们.毫无疑问 ...

  4. URL链接后面的参数解析,与decode编码解码;页面刷新回到顶部jquery

    function request() { var urlStr = location.search; ) { theRequest = []; return; } urlStr = urlStr.su ...

  5. Python 网络爬虫 009 (编程) 通过正则表达式来获取一个网页中的所有的URL链接,并下载这些URL链接的源代码

    通过 正则表达式 来获取一个网页中的所有的 URL链接,并下载这些 URL链接 的源代码 使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 ...

  6. 详解Node解析URL网址

    前提给大家声明一下,我操作的环境是Mac终端下操作的.(前提是你先要下载好node.js) 说道URL 恐怕都不陌生,但是要说URL,就 必须先说下URI URI是统一资源标识符,是一个用于标识某一互 ...

  7. PHP的学习--解析URL

    PHP中有两个方法可以用来解析URL,分别是parse_url和parse_str. parse_url 解析 URL,返回其组成部分 mixed parse_url ( string $url [, ...

  8. django反向解析URL和URL命名空间

    django反向解析URL和URL命名空间 首先明确几个概念: 1.在html页面上的内容特别是向用户展示的url地址,比如常见的超链接,图片链接等,最好能动态生成,而不要固定. 2.一个django ...

  9. python模块之HTMLParser抓页面上的所有URL链接

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser抓页面上的所有URL链接 import urllib #MyParse ...

随机推荐

  1. R语言 如何用IF语句判断 一个数字的奇偶

    jishu <- function(x){ ifelse(x%%2 ==0,F,T)}  

  2. Sword redis数据结构

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) string 是 redi ...

  3. linux计算文件大小

  4. maven学习日记(三)-------开发环境搭建(springmvc+hibernate4)各种maven错误汇总

    1.maven编码 gbk 的不可映射字符 解决这个问题的思路: 在maven的编译插件中声明正确的字符集编码编码——编译使用的字符集编码与代码文件使用的字符集编码一致!! 安装系统之后,一般中文系统 ...

  5. 第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS

    第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 ...

  6. Xcode快捷键--灰常实用的快捷键,以后编程快捷多了

    从雨痕老大的博客上转来的 http://www.rainsts.net/article.asp?id=1066 读书人偷书不算窃 :)   1. 文件 CMD + N: 新文件CMD + SHIFT ...

  7. Java如何使用线程解决死锁?

    在Java编程中,如何使用线程解决死锁? 以下示例演示如何使用线程的概念解决死锁问题. // from W w w .Y I I b AI.c o M package com.yiibai; impo ...

  8. Linux网卡eth0变成eth1修改方法

    由于换了主板,集成网卡mac地址变了,70-persistent-net.rules中仍然保留了老网卡的内容,新网卡则被识别为eth1. 将表示老网卡的行注释掉,然后将表示新网卡的行中eth1改成et ...

  9. 每天一个linux命令:mv命令

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...

  10. 每天一个linux命令:mkdir命令

    linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令 ...