我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python--URL操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python--URL操作

目标URL:http://127.0.0.1:5000/oauth/authorize?redirect_uri=http%3A%2F%2F127.0.0.1%3A5000%2Fcallback%2F%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D&client_id=jwETJvFj1nkRYtVJrNZE7lS9&response_type=code&state=0.1354064097905866

URL中的元素:

  • 通常意义上的URL
  • 重定义URL:
  • 通常意思上的URL的请求参数
  • 重定义URL里面的请求参数

解析URL—urlparse

我使用的Python3.6,使用的是自带的库urllib,并使用里面的子模块parse。

from urllib.parse import urlparse

url = "https://127.0.0.1/oauth/authorize" \
      "?redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D" \
      "&client_id=o92cvMIa5FzGbq4LpHJoaf2j" \
      "&response_type=code" \
      "&state=0.1354064097905866"

dest_str = urlparse(url)
print(dest_str)

打印出来:

ParseResult(scheme='https', netloc='127.0.0.1', path='/oauth/authorize', params='', query='redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D&client_id=o92cvMIa5FzGbq4LpHJoaf2j&response_type=code&state=0.1354064097905866', fragment='')

它会解析为:

  • scheme:https
  • netloc:127.0.0.1
  • path:/oauth/authorize
  • params:
  • query:redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D&client_id=o92cvMIa5FzGbq4LpHJoaf2j&response_type=code&state=0.1354064097905866
  • fragment:

解析query—使用parse_qs

from urllib.parse import urlparse, parse_qs

url = "https://127.0.0.1/oauth/authorize" \
      "?redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D" \
      "&client_id=o92cvMIa5FzGbq4LpHJoaf2j" \
      "&response_type=code" \
      "&state=0.1354064097905866"

dest_str = urlparse(url)
print(parse_qs(dest_str.query))

打印出来:

{'redirect_uri': ['https://open.bot.tmall.com/oauth/callback?skillId=18936&token=NzkzODU4MzM3QUZFSElORkRWUQ=='], 'client_id': ['o92cvMIa5FzGbq4LpHJoaf2j'], 'response_type': ['code'], 'state': ['0.1354064097905866']}

解析redirect_uri—使用urlparse

from urllib.parse import urlparse, parse_qs

url = "https://127.0.0.1/oauth/authorize" \
      "?redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D" \
      "&client_id=o92cvMIa5FzGbq4LpHJoaf2j" \
      "&response_type=code" \
      "&state=0.1354064097905866"

dest_1 = urlparse(url)
dest_2 = parse_qs(dst_1.query)
dest_3 = urlparse(dest_2)
print(parse_qs(dest_str.query))

最终的

# encoding: utf-8

from urllib.parse import urlparse, parse_qs
import html

url = "https://127.0.0.1/oauth/authorize" \
      "?redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D" \
      "&client_id=o92cvMIa5FzGbq4LpHJoaf2j" \
      "&response_type=code" \
      "&state=0.1354064097905866"


def main():
    dest_1 = urlparse(url)
    #print(dest_1)             # ParseResult(scheme='https', netloc='127.0.0.1', path='/oauth/authorize', params='', query='redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D&client_id=o92cvMIa5FzGbq4LpHJoaf2j&response_type=code&state=0.1354064097905866', fragment='')

    dest_2 = parse_qs(dest_1.query)
    #print(dest_2)              # {'redirect_uri': ['https://open.bot.tmall.com/oauth/callback?skillId=18936&token=NzkzODU4MzM3QUZFSElORkRWUQ=='], 'client_id': ['o92cvMIa5FzGbq4LpHJoaf2j'], 'response_type': ['code'], 'state': ['0.1354064097905866']}

    dest_3 = dest_2['redirect_uri']
    #print(dest_3)              # ['https://open.bot.tmall.com/oauth/callback?skillId=18936&token=NzkzODU4MzM3QUZFSElORkRWUQ==']

    print(str(dest_3)[2:-2])    # https://open.bot.tmall.com/oauth/callback?skillId=18936&token=NzkzODU4MzM3QUZFSElORkRWUQ==

    dest_4 = urlparse(str(dest_3)[2:-2])
    print(dest_4)               # ParseResult(scheme='https', netloc='open.bot.tmall.com', path='/oauth/callback', params='', query='skillId=18936&token=NzkzODU4MzM3QUZFSElORkRWUQ==', fragment='')

    dest_5 = parse_qs(dest_4.query)
    print(dest_5)                     # {'skillId': ['18936'], 'token': ['NzkzODU4MzM3QUZFSElORkRWUQ==']}

    dest_6 = dest_5['token'] # ['NzkzODU4MzM3QUZFSElORkRWUQ==']
    print(str(dest_6)[2:-2]) # NzkzODU4MzM3QUZFSElORkRWUQ==


if __name__ == '__main__':
    main()

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python--URL操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python--URL操作

目标URL:http://127.0.0.1:5000/oauth/authorize?redirect_uri=http%3A%2F%2F127.0.0.1%3A5000%2Fcallback%2F%3FskillId%3D18936%2
2023-01-31

nodejs URL模块操作URL相关方法介绍

url模块 处理HTTP请求时url模块使用率超高,因为该模块允许解析URL、生成URL,以及拼接URL。首先我们来看看一个完整的URL的各组成部分。href-----------------------------------------
2022-06-04

java操作new HttpPost(URL)和 new URL(shixun_ip) 获取流

HttpClient:private static HttpClient httpClient;static {if (httpClient == null) {HttpParams params = new BasicHttpParams();// 设置一些
java操作new HttpPost(URL)和 new URL(shixun_ip) 获取流
2020-06-13

python3操作注册表的方法(Url protocol)

使用python操作注册表的方法最近学习了一下,现在做一下笔记,由于对Python语言的使用还不是很熟练,所以写不出高大上的结构,但是解决问题搓搓有余了。 说道注册表顺便也说一说环境变量的修改(放下下一节讲),里面有许多相似的地方,我觉得放
2022-06-04

ASP.NET MVC如何实现对URL匹配操作

这篇文章将为大家详细讲解有关ASP.NET MVC如何实现对URL匹配操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、使用{parameter}做模糊匹配{parameter}:花括弧加任意长度的字
2023-06-29

Python中文转换url编码的实际操作步骤是什么

这篇文章给大家介绍Python中文转换url编码的实际操作步骤是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。url编码具有十分强大的功能,以及具有十分简捷的运用技巧,那么如果在Python中文转换url编码你对其
2023-06-17

Python操作SQLLite(基本操作

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。Python SQLITE数据库是一款非常小巧的嵌
2023-01-31

Python操作Elasticsearc

描述:ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。下面介绍了利用Python API接口进行数据查询,方便其他系统的调用。注:此文仅做笔记参考  
2023-01-31

Python操作MSSQL

Python连接SQL Server数据库 - pymssql使用基础:https://www.cnblogs.com/baiyangcao/p/pymssql_basic.html廖雪峰官网 之 Python 访问数据库(SQLLite
2023-01-31

python 操作outlook

# -*- coding: utf-8 -*-from win32com.client import constantsfrom win32com.client.gencache import EnsureDispatch as Dispa
2023-01-31

Python操作符

运算操作符+_*/% 取余// 除法取整** 幂运算例a = 3a += 2a → 5b = 4b -= 1b→310/8 → 1.2510//8 → 110 % 3 → 16 % 3 → 0逻辑操作符andornot
2023-01-31

python 操作excel

python 读写 excel 有好多选择,但是,方便操作的库不多,在我尝试了几个库之后,我觉得两个比较方便的库分别是 xlrd/xlwt、openpyxl。之所以推荐两个库是因为这两个库分别操作的是不同版本的 excel,xlrd 操作的
2023-01-31

Python 操作json

Json语法规则:数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组Json字符串本质上是一个字符串,用单引号表示Json数据的书写格式名称--值对,包括名称字段(在双引号中),后面跟一个冒号,然后是值:“name”: ”zhan
2023-01-31

python操作mysqldb

下载安装MySQLdb<1>linux版本http://sourceforge.net/projects/mysql-python/ 下载,在安装是要先安装setuptools,然后在下载文件目录下,修改mysite.cfg,指定本地mys
2023-01-31

python 操作 libreoffic

最近研究了一个,用python来向libreoffice spreadsheet中的写数据,openoffice管方网站的资料也不是很清楚,在网上找到的几个比较有用的网站有:http://wiki.services.openoffice.o
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录