广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python--URL操作
  • 462
分享到

Python--URL操作

操作PythonURL 2023-01-31 02:01:44 462人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目标URL:Http://127.0.0.1:5000/oauth/authorize?redirect_uri=http%3A%2F%2F127.0.0.1%3A5000%2Fcallback%2F%3FskillId%3D18

目标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()

--结束END--

本文标题: Python--URL操作

本文链接: https://www.lsjlt.com/news/186853.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Python--URL操作
    目标URL:http://127.0.0.1:5000/oauth/authorizeredirect_uri=http%3A%2F%2F127.0.0.1%3A5000%2Fcallback%2F%3FskillId%3D189...
    99+
    2023-01-31
    操作 Python URL
  • Python利用yarl实现轻松操作url
    目录1.简介2.在Python中利用yarl高效处理url2.1 利用yarl解析url信息2.2 利用yarl构造url2.3 利用/、%运算符快捷合成url1.简介 大家好我是费...
    99+
    2022-11-11
  • ASP.NETMVC对URL匹配操作
    1、使用{parameter}做模糊匹配 {parameter}:花括弧加任意长度的字符串,字符串不能定义成controller和action字母。默认的就是模糊匹配。 例如:{ad...
    99+
    2022-11-13
  • java操作new HttpPost(URL)和 new URL(shixun_ip) 获取流
    HttpClient:private static HttpClient httpClient; static { if (httpClient == null) { HttpParams params = new BasicH...
    99+
    2020-06-13
    java教程 java
  • nodejs URL模块操作URL相关方法介绍
    url模块 处理HTTP请求时url模块使用率超高,因为该模块允许解析URL、生成URL,以及拼接URL。首先我们来看看一个完整的URL的各组成部分。 href -------------------...
    99+
    2022-06-04
    模块 操作 方法
  • python3操作注册表的方法(Url protocol)
    使用python操作注册表的方法最近学习了一下,现在做一下笔记,由于对Python语言的使用还不是很熟练,所以写不出高大上的结构,但是解决问题搓搓有余了。 说道注册表顺便也说一说环境变量的修改(放下下一节讲),里面有许多...
    99+
    2022-06-04
    python3注册表
  • python url quote
    1,url字符串中如果带有中文的编码,要使用url时。先将中文部分编码由gbk译为utf8 然后在urllib.quote(str) 才可以使用url正常访问打开,否则编码会出问题。 2,同样如果从url中取出相应中文字段解码时,需要先u...
    99+
    2023-01-31
    python url quote
  • Python中文转换url编码的实际操作步骤是什么
    这篇文章给大家介绍Python中文转换url编码的实际操作步骤是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。url编码具有十分强大的功能,以及具有十分简捷的运用技巧,那么如果在Python中文转换url编码你对其...
    99+
    2023-06-17
  • ASP.NET MVC如何实现对URL匹配操作
    这篇文章将为大家详细讲解有关ASP.NET MVC如何实现对URL匹配操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、使用{parameter}做模糊匹配{parameter}:花括弧加任...
    99+
    2023-06-29
  • python 分解url
    from urllib.parse import urlsplitprint(urlsplit('https://item.taobao.com/item.htmid=558080275389&ali_refid=a3_420432...
    99+
    2023-01-31
    分解 python url
  • python提取url
    import urllib2str1='<a title="xxxx" target="_blank" href="http://xxxx.html">xxxx</a>'href=str1.find(r'href')...
    99+
    2023-01-31
    python url
  • python url采集
    python利用百度做url采集pip install tableprintparamiko==2.0.8语法:python url_collection.py -h输出帮助信息python url_collection.py 要采集的信息...
    99+
    2023-01-31
    python url
  • spring mvc url匹配禁用后缀访问操作
    spring mvc url匹配禁用后缀访问 在spring mvc中默认 访问url 加任意后缀名都能访问 比如:你想访问 /login ,但是通过 /login.do /logi...
    99+
    2022-11-12
  • Python操作SQLLite(基本操作
      SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。 Python SQLITE数据库是一款非常...
    99+
    2023-01-31
    操作 Python SQLLite
  • mongoose 连接数据库操作 DeprecationWarning: current URL string parser is deprecated
    moogoose 数据库操作是这样的: //添加模块 const mongoose = require(‘mongoose‘); //链接数据库{useNewUrlParser: true, useUnifiedTopology: true...
    99+
    2017-09-01
    mongoose 连接数据库操作 DeprecationWarning: current URL string parser is deprecated 数据库入门 数据库基础教程 数据库 my
  • Python URL编解码 encode
    urllib包中parse模块的quote和unquote from urllib import parse #这个是js的结果 # encodeURIComponent('中国') # "%E4%B8%AD%E5%9B%BD...
    99+
    2023-01-31
    编解码 Python URL
  • python的requests库和url
    python中有多种库可以用来处理http请求,比如python的原生库:urllib包、requests类库。urllib和urllib2是相互独立的模块,python3.0以上把urllib和urllib2合并成一个库了,request...
    99+
    2023-01-31
    python requests url
  • python 解析url路径
    原理:使用urlparse,先解析整个url,然后使用split('/')方式构造为词典,下面就可以直接读取from urllib.parse import urlparse url = 'http://www.abc.cn/jfjb...
    99+
    2023-01-31
    路径 python url
  • python 操作 libreoffic
    最近研究了一个,用python来向libreoffice spreadsheet中的写数据,openoffice管方网站的资料也不是很清楚,在网上找到的几个比较有用的网站有:http://wiki.services.openoffice....
    99+
    2023-01-31
    操作 python libreoffic
  • Python操作Elasticsearc
    描述:ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。下面介绍了利用Python API接口进行数据查询,方便其他系统的调用。注:此文仅做笔记参考 ...
    99+
    2023-01-31
    操作 Python Elasticsearc
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作