Python3 urllib.request读取带中文的链接

本文介绍两种处理URL中中文的方法:一是提取中文并使用quote函数进行编码;二是直接对整个URL进行编码。文中提供了Python代码示例及不同参数设置下quote函数的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两种方法,一种是将中文单独拿出进行处理,然后进行字符串拼接;另一种是直接对链接进行修改。

第一种方法,将中文单独拿出

# -*- coding:utf-8 -*-

from urllib.parse import quote

url = 'http://www.example.com/api.php?text=中文在这里'

x = '中文在这里'
x = quote(x)
print(x)
y = 'http://www.example.com/api.php?text='
print(y + x)

运行结果如下

%E4%B8%AD%E6%96%87%E5%9C%A8%E8%BF%99%E9%87%8C
http://www.example.com/api.php?text=%E4%B8%AD%E6%96%87%E5%9C%A8%E8%BF%99%E9%87%8C

第二种方法,直接对链接进行处理

# -*- coding:utf-8 -*-

from urllib.parse import quote


url = 'http://www.example.com/api.php?text=中文在这里'

# 不带附加参数
print('\n不带附加参数:\n%s' % quote(url))

# 附带不转换字符参数
print('\n附加不转换字符参数:\n%s' % quote(url, safe='/:?=&'))

运行结果如下

不带附加参数:
http%3A//www.example.com/api.php%3Ftext%3D%E4%B8%AD%E6%96%87%E5%9C%A8%E8%BF%99%E9%87%8C

附加不转换字符参数:
http://www.example.com/api.php?text=%E4%B8%AD%E6%96%87%E5%9C%A8%E8%BF%99%E9%87%8C

quote可用的参数如下:

quote(string, safe='/', encoding=None, errors=None)

其中safe参数可用的范围

reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
参考网站:https://www.zhihu.com/question/22899135
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值