前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python:解析URL

python:解析URL

作者头像
超级大猪
发布于 2019-11-22 06:48:38
发布于 2019-11-22 06:48:38
1.4K00
代码可运行
举报
文章被收录于专栏:大猪的笔记大猪的笔记
运行总次数:0
代码可运行

在python中,可以用urlparser包优雅的拆分URL。

拆分并分离query

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# python2.7
import urlparse
parsed_data = urlparse.urlparse(url)
path = parsed_data.path
query = urlparse.parse_qs(parsed_data.query)

拼凑URL

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# py2.7 这里的返回值是上面的urlparser返回的。需要特别处理一下。
import urllib
query = [(k, v) for k, vlist in query.iteritems() for v in vlist]
query = urllib.urlencode(query)

从URL中去除不需要的参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import urlparse
import urllib
import time

url_enable_query = set(["rs_id"])
def remove_url_query(url):
    parsed_data = urlparse.urlparse(url)
    path = parsed_data.path
    query = urlparse.parse_qs(parsed_data.query)

    query = [(k, v) for k, vlist in query.iteritems() if k in url_enable_query for v in vlist ]
    query = urllib.urlencode(query)
    return "{}?{}".format(path, query)

这个函数的性能实在太差了。10000次用了整整45s。 在不严格的情况下,自己用split进行判定会好很多。快了12倍。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import urlparse
import urllib
import time

url_enable_query = set(["rs_id"])
def remove_url_query2(url):
    parsed_data = url.split("?")
    path = parsed_data[0]
    if len(parsed_data) == 1:
        return path

    query = parsed_data[1]
    query = query.split("&")
    query = "&".join([x for x in query if x.split("=")[0] in url_enable_query])
    return "{}?{}".format(path, query)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-06-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
Python 的 urllib.parse 库解析 URL
Python 中的 urllib.parse 模块提供了很多解析和组建 URL 的函数。
周小董
2019/03/25
3.4K0
Python 的 urllib.parse 库解析 URL
python笔记:随机数,md5,en/decoder
uuid 生成随机识别号 import uuid for i in range(0,10): print "uuid is :"+ str(uuid.uuid4()) 另一种实现 import os import base64 def GetRndStr(): rndByte = os.urandom(6) b64Str = base64.urlsafe_b64encode(rndByte) return b64Str 生成不重复随机序列 import rando
超级大猪
2019/11/21
8070
PHP代码审计笔记--XSS跨站脚本
这边代码逻辑中,问题根源在于最后一句的url解码输出,导致存在三重url编码绕过的情况。
Bypass
2019/07/08
9470
PHP代码审计笔记--XSS跨站脚本
purl:更好的URL处理库
而purl的出现,就是为了解决这些痛点。它提供了一种优雅且直观的方式来处理URL,让你的代码更加清晰易懂。
luckpunk
2025/01/22
1410
purl:更好的URL处理库
python-urllib.parse
小编最近在编写接口自动化测试用例的过程中,需要将get请求url中的部分参数替换成预设的数据,将url中的具有时效性的auth替换成auth生成方法返回值。经过一番调研,最后选取了python的urllib库的parse模块。
用户5521279
2020/07/03
1.5K0
python核心编程(web)
1、urlparse模块 urlparse.urlparse('http://www.python.org/doc/FAQ.html')
用户5760343
2022/05/14
8100
python核心编程(web)
python自动解析URL参数,让你的爬虫更加丝滑~
今天我们介绍一款python标准库urllib.parse,这玩意主要用于解析URL,即将URL字符串分割成其组件,或者将URL组件组合成一个URL字符串。
可以叫我才哥
2021/08/05
4.5K0
Python基础教程(二十七):urllib模块
在Python中,urllib模块是一组用于处理URLs的标准库,它提供了发送网络请求、解析URLs、处理重定向和错误等功能。对于进行Web爬虫开发、数据抓取和API调用等任务,urllib模块是非常实用的工具。本文将深入探讨urllib模块的各个组成部分,包括urllib.request, urllib.parse和urllib.error,并通过具体案例帮助你掌握如何使用这些模块进行网络请求和数据处理。
用户11147438
2024/06/22
1840
Python--URL操作
目标URL:http://127.0.0.1:5000/oauth/authorize?redirect_uri=http%3A%2F%2F127.0.0.1%3A5000%2Fcallback%2F
py3study
2020/01/10
1.3K0
21天打造分布式爬虫-urllib库(一)
urlparse和urlsplit都是用来对url的各个组成部分进行分割的,唯一不同的是urlsplit没有"params"这个属性.
zhang_derek
2018/08/01
3310
21天打造分布式爬虫-urllib库(一)
python开源IP代理池--IPProxys
今天博客开始继续更新,谢谢大家对我的关注和支持。这几天一直是在写一个ip代理池的开源项目。通过前几篇的博客,我们可以了解到突破反爬虫机制的一个重要举措就是代理ip。拥有庞大稳定的ip代理,在爬虫工作中将起到重要的作用,但是从成本的角度来说,一般稳定的ip池都很贵,因此我这个开源项目的意义就诞生了,爬取一些代理网站提供的免费ip(虽然70%都是不好使的,但是扛不住量大,网站多),检测有效性后存储到数据库中,同时搭建一个http服务器,提供一个api接口,供大家的爬虫程序调用。 好了,废话不多说,
七夜安全博客
2018/06/26
9890
使用Python抓取欧洲足球联赛数据
数据的来源多种多样,以为我本身是足球爱好者,所以我就想提取欧洲联赛的数据来做一个分析。许多的网站都提供了详细的足球数据,例如: 网易 http://goal.sports.163.com/ 腾讯体育 http://soccerdata.sports.qq.com/ 虎扑体育 http://soccer.hupu.com/ http://www.football-data.co.uk/ 这些网站都提供了详细的足球数据,然而为了进一步的分析,我们希望数据以格式化的形式存储,那么如何把这些网站提供的网
机器学习AI算法工程
2018/03/14
2.8K0
使用Python抓取欧洲足球联赛数据
Python3 urllib.parse
1、获取url参数。 >>> from urllib import parse >>> url = r'https://docs.python.org/3.5/search.html?q=parse
py3study
2020/01/03
5660
群晖部署-Calibreweb
我们使用johngong/calibre-web,我们用这个镜像来构建应用,这个镜像已经添加了一些原始镜像没有的功能,可以更快的上手。我们直接拉取johngong/calibre-web镜像即可
MaybeHC
2025/01/23
2430
群晖部署-Calibreweb
​一日一技:如何替换URL中的query字段?
在我们写爬虫的时候,可能会需要在爬虫里面基于当前url生成一个新的url。例如下面这段伪代码:
青南
2021/09/09
1.8K0
Python3 url解码与参数解析
在获取zk节点时,有些子节点名字直接就是编码后的url,就像下面这行一样: url='dubbo%3A%2F%2F10.4.5.3%3A20880%2Fcom.welab.authority.service.AuthorityService%3Fanyhost%3Dtrue%26application%3Dwelab-authority%26dubbo%3D2.5.7' 先需要把这个url里进行解码, 转成如下这种: dubbo://10.4.5.3:20880/com.welab.authority.se
py3study
2020/01/06
1.5K0
urllib, urllib2, urllib3 都是小弟弟
urllib 是 python 的内置模块, 主要用于处理url相关的一些操作,例如访问url、解析url等等。
龙哥
2020/09/22
5260
urllib, urllib2, urllib3 都是小弟弟
Python 爬虫之网络请求
本篇介绍了爬虫中有关网络请求的相关知识,通过阅读,你将了解到urllib和requests库的相关使用方法,并对Cookies有进一步的了解,如果你有更好的想法和建议,欢迎留言交流。
村雨遥
2022/06/15
3340
从SUCTF2019到python源码
前段时间打的SUCTF2019中有一个题目叫Pythongin思路大概来源于黑帽大会
用户5878089
2019/09/04
7260
网络请求与数据解析
urllib是Python自带的标准库中用于网络请求的库 ,无需安装,直接引用即可。通常用于爬虫开发、API(应用程序编程接口)数据获取和测试。
@小森
2024/03/15
1480
网络请求与数据解析
相关推荐
Python 的 urllib.parse 库解析 URL
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验