当前位置: 首页 > news >正文

处理urllib.request.urlopen报错UnicodeEncodeError:‘ascii‘

参考:[Python3填坑之旅]一·urllib模块网页爬虫访问中文网址出错

目录

一、报错内容

二、报错截图

三、解决方法

四、实例代码

五、运行截图

六、其他UnicodeEncodeError: 'ascii' codec 问题


一、报错内容

UnicodeEncodeError: 'ascii' codec can't encode characters in position 22-23: ordinal not in range(128)

二、报错截图

三、解决方法

字母、数字和 '_.-~' 等字符一定不会被转码。 在默认情况下,此函数只对 URL 的路径部分进行转码。 可选的 safe 形参额外指定不应被转码的 ASCII 字符,其默认值为 '/'。--Python官方文档

1、urllib解析含中文的url时,单独编码中文部分,最后拼接

# -*- coding: UTF-8 -*-
from urllib import request, error, parsecity = '徐州'
city = parse.quote(city)  # urllib处理中文,需要编码
url = 'https://***.***.com/api?city={}'.format(city)

  2、直接对url整体中的中文进行编码,默认不对/字母编码,但会对url中的:=?空格等编码

url = 'https://***.***.com/api?city=徐州'
url = parse.quote(url, safe='/:=?')  # urllib处理中文,需要编码

四、实例代码

1、单独处理中文编码

# -*- coding: UTF-8 -*-
from urllib import request, error, parsecity = '徐州'
city = parse.quote(city)  # urllib处理中文,需要编码
url = 'https://***.***.com/api?city={}'.format(city)response = request.urlopen(url)
print(response.read().decode('utf-8'), response.getheader('Server'))

 2、处理整体url

# -*- coding: UTF-8 -*-
from urllib import request, error, parseurl = 'https://***.***.com/api?city=徐州'
url = parse.quote(url, safe='/:=?')  # urllib处理中文,需要编码response = request.urlopen(url)
print(response.read().decode('utf-8'), response.getheader('Server'))

五、运行截图

六、其他UnicodeEncodeError: 'ascii' codec 问题

参考:

https://blog.csdn.net/u011331731/article/details/89400702

https://wenku.csdn.net/answer/5txy7qyur8

http://www.lryc.cn/news/271191.html

相关文章:

  • 数据结构模拟实现LinkedList双向不循环链表
  • 性能优化-如何提高cache命中率
  • 分布式【4. 什么是 CAP?】
  • <软考高项备考>《论文专题 - 39采购管理(3) 》
  • Java在SpringCloud中自定义Gateway负载均衡策略
  • 前端 js 基础(1)
  • Android : 使用GestureOverlayView进行手势识别—简单应用
  • API集群负载统计 (100%用例)C卷 (JavaPythonNode.jsC语言C++)
  • 小梅哥Xilinx FPGA学习笔记18——专用时钟电路 PLL与时钟向导 IP
  • 低代码平台在金融银行中的应用场景
  • Css基础内容
  • 微服务(11)
  • 连锁门店管理需要信息化系统
  • UTF-8编码:打破字符编码的国界
  • HTML进阶
  • 基于策略模式和简单工厂模式实现zip、tar、rar、7z四种压缩文件格式的解压
  • 修改jenkins的目录(JENKINS_HOME)
  • Bytebase:统一数据库 CI/CD 解决方案 | 开源日报 No.128
  • History对象常用方法
  • 修改源码,element的el-table合并,处理合并产生的hover样式问题
  • IoT 物联网常用协议
  • 使用java备份和恢复SQLServer表数据
  • 27 UVM queue
  • 聊聊自动化测试的分层实践
  • LVS那点事
  • 2022-2023年度广东省职业院校学生专业技能大赛“软件测试”赛项接口测试训练题目
  • [Python][LeetCode]28. 找出字符串中第一个匹配项的下标
  • Prometheus监控mysql
  • 骑砍战团MOD开发(30)-游戏大地图map.txt
  • 关于 bringup sensor 时,曝光时间异常的问题排查