python urllib.parse

2023-05-16

  • urlparse

    from urllib.parse import urlparse, urlunparse
    
    result = urlparse('http://www.baidu.com/index.html;user?id=5#comment')
    print(result)
    
    ParseResult(scheme='http', netloc='www.baidu.com', path='/index.html', params='user', query='id=5', fragment='comment')
    # 其中schema是协议,netloc是域名服务器,path是相对路径,params是参数,query是查询条件,fragment锚点
    
    # 相对应的将参数合并成完整url的方法为urlunparse(),共6个参数
    
  • urlsplit

    from urllib.parse import urlsplit,urlunsplit
    
    result = urlsplit('http://www.baidu.com/index.html;user?id=5#comment')
    print(result)
    
    SplitResult(scheme='http', netloc='www.baidu.com', path='/index.html;user', query='id=5', fragment='comment')
    # 与urlparse类似,但是没有params返回值,合并在path里面
    
    # 对应的方法为urlunsplit(),共5个参数
    

    注:urlparse和urlsplit都有一个allow_fragments参数,默认为True;若设置为False,它会被解析为path,parameters或者query的一部分,而fragment部分为空

  • urlencode

    from urllib.parse import urlencode
    
    params = {  
        'name' : 'germey',  
        'age' : 22  
    }  
    base_url = 'http://www.baidu.com?'  
    url = base_url + urlencode(params)  
    print(url) 
    
    http://www.baidu.com?name=germey&age=22
    

    一般当某个post请求的"Content-Type"为"application/x-www-form-urlencoded"时,需要对post_data进行urlencode(urlencode(post_data))

  • quote & unquote

    # 该方法可以将内容转变成url编码的格式
    # 多数情况用于对中文字符进行编码
    from urllib.parse import quote  
      
    keyword = '壁纸'  
    url = 'http://www.baidu.coms?wd='+quote(keyword)  
    print(url)  
    
    http://www.baidu.coms?wd=%E5%A3%81%E7%BA%B8
        
    # 相对应的unquote可以进行url解码
    print(unquote(url))
    
    http://www.baidu.coms?wd=壁纸
    

    quote方法有个参数encoding,不同的encoding值,获取的url编码有一些不同

  • unicode

    有一些字符串的形式包含大量’\u’字符如(“2019\u5e74\u5e74\u62a5\u8868”),可以这样来转换成中文

    # 前面的r很重要,将反斜杠的转义功能去除掉(或者使用双反斜杠)
    text = r'2019\u5e74\u5e74\u62a5\u8868'
    print(text.encode().decode('unicode_escape'))
    
    '2019年年报表'
    
  • requests.post()

    在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json。
    data与json既可以是str类型,也可以是dict类型。
    区别:

  1. 不管jsonstr还是dict,如果不指定headers中的content-type,默认为application/json
  2. datadict时,如果不指定content-type,默认为application/x-www-form-urlencoded,相当于普通form表单提交的形式
  3. datastr时,如果不指定content-type,默认为application/json
  4. 用data参数提交数据时,request.body的内容则为a=1&b=2的这种形式,用json参数提交数据时,request.body的内容则为’{"a": 1, "b": 2}'的这种形式

在Chrome浏览器中,查看post请求下面的Form Data时,选择view soure可以看到post的数据的形式,若为a=1&b=2的形式,一般使用data参数;若为{“a”: 1, “b”: 2}的形式,一般使用json参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python urllib.parse 的相关文章

  • XPath 语法错误:谓词无效

    我有一个像这样的 XML 文件 cat sample xml
  • 将列的百分比设置为 0 (pandas)

    我有一个 pandas 数据框 我想将列的某些百分比设置为 0 假设 df 有两列 A B 1 6 2 7 3 8 4 4 5 9 我现在想将 df 的前 20 和后 20 的 B 设置为 0 A B 1 0 2 7 3 8 4 4 5 0
  • 在 Python 中使用 argparse 处理无效参数

    我在用argparse https docs python org 2 library argparse html解析命令行参数 默认情况下 在收到无效参数时 它会打印帮助消息并退出 是否可以自定义 argparse 在收到无效参数时的行为
  • 如何在 jupyter 笔记本中导入 scikit-learn?

    我创建了一个新的 conda 环境来使用 scikit learn 并使用conda install
  • Pandas:删除具有纳米值索引的行

    给定以下 pandas DataFrame 其中一些索引是NaN 如何删除第三行和第八行 因为它们的索引是NaN Thanks import pandas as pd import numpy as np data list abcdefg
  • python 函数中的任意数量的参数

    我想学习如何在 python 函数中传递任意数量的参数 所以我以递归方式编写了一个简单的 sum 函数 如下所示 def mySum args if len args 1 return args 0 else return args 1 m
  • Python/pandas:从两个数据帧中查找匹配值并返回第三个值

    我有两个不同的数据帧 df1 df2 具有完全不同的形状 df1 64 6 df2 564 9 df1 包含一列 df1 objectdesc 其中的值 字符串 也可以在 df2 df2 objdescription 的列中找到 由于两个数
  • 将文件添加到现有 zip 文件

    我正在使用 python 的zipfile module zip 文件位于以下路径 home user a b c test zip并在下面创建另一个文件 home user a b c 1 txt我想将此文件添加到现有的 zip 中 我这
  • 适用于 Web 照片库的正确 NoSQL 数据架构

    我正在寻找为照片库的 NoSQL 存储构建合适的数据结构 在我的网络应用程序中 一张照片可以是一个或多个相册的一部分 我有使用 MySQL 的经验 但几乎没有使用键值存储的经验 使用 MySQL 我将设置 3 个表 如下所示 photos
  • GitPython 并向 Git 对象发送命令

    GitPython http gitorious org git python是一种从 python 与 git 交互的方式 我正在尝试访问基本的 git 命令 例如git commit m message 从此模块中 根据this htt
  • 如何复制 tf.keras.models.Model 子类?

    我需要复制 keras 模型 但我无法知道可以做什么 除非该模型is not a tf keras models Model 子类 Note 使用copy deepcopy 将在没有任何错误的情况下工作 但是每当使用副本时都会导致另一个错误
  • 如何将目录结构解析为字典?

    我有目录结构列表 例如 a b a b c a b c d a b c e a b c f g a b c f h a b c f i 我想将它转换成像树结构一样的字典 a b c d None e None f g None h None
  • 其中 Py_FileSystemDefaultEncoding 在 python 源代码中设置

    我很好奇python源代码如何设置Py FileSystemDefaultEncoding的值 我收到了一件奇怪的事情 自从Pythondoc https docs python org 2 library sys html sys get
  • 如果我使用不同数量的核心,XGBoost 会产生相同的结果吗?

    我在两台机器上安装了完全相同版本的 XGBoost 0 4 两台机器之间的唯一区别是 RAM 和内核数量 8 与 16 使用完全相同的数据 我无法重现相同的结果 它们略有不同 小数点后第四 第五位 种子保留为默认值 它是高度特定于实现的 但
  • 在 Mac OS X 中安装 Avro

    我正在查看 Avro RPC for Python 网址为https github com phunt avro rpc quickstart python https github com phunt avro rpc quickstar
  • 减小散点图的文件大小

    我目前正在尝试减小散点图的文件大小 我的代码如下所示 plt scatter a1 b1 plt savefig test ps 其中 a1 b1 是大小为 400 000 左右的数组 它给出的文件大小为 7 8MB 我尝试过添加 plt
  • 将数据帧转换为多列的系列

    我尝试将数据帧转换为系列但它显示以下错误 我使用 pandas Series Dataframe gt 将 Dataframe 转换为系列 我想要第一张图像格式的输出 请尝试以下方法从提到的数据中获取 Series 对象 假设data是您正
  • 如何在Python中的滚动平均计算中忽略NaN

    对于时间序列销售预测任务 我想创建一个代表过去 3 天平均销售额的功能 当我想预测未来几天的销售额时遇到问题 因为这些数据点没有销售数据 NaN 值 Pandas 提供rolling mean 但当窗口中的任何数据点为 NaN 时 该函数会
  • 将行追加到 Pandas DataFrame 添加 0 列

    我正在创建一个 Pandas DataFrame 来存储数据 不幸的是 我无法提前知道我将拥有的数据行数 所以我的方法如下 首先 我声明一个空的 DataFrame df DataFrame columns col1 col2 然后 我附加
  • 根据另一个 csv 文件过滤 csv 文件中的行并将过滤后的数据保存在新文件中

    大家好 所以我试图根据file1过滤file2 其中file1是file2的子集 但 file2 有一个描述列 我需要能够分析 file1 中的数据 我想做的是过滤 file2 并仅获取 file1 中的标题及其描述 我尝试了这个 但我不太

随机推荐