urllib.parse模块

简介: urllib.parse模块

不同的语言都有它的编码方式,美国 ascii编码, 欧洲iso-8859-1, 中国是gbk, 统一使用utf-8。
浏览器请求url时,浏览器会对url进行一个编码,除了英文、数字和部分符号,其他全部百分号加十六进制表现形式。
我们使用爬虫访问一些服务器网站时,通常需将相应的汉字关键词编码,需要使用urllib.parse模块。
urllib 网络模块向一个携带中文网址发请求,会报错

  • 解决方法:把中文处理成%+十六进制的样式
    如:使用百度搜索 中国 ,通过解析可以得到其url。方法有两种。

第一种方法 对字典

  • 使用**urlencode()**方法
import urllib.request
# res = urllib.request.urlopen(url1)

r = {
    'wd': '中国'}
result = urllib.parse.urlencode(r)
print(result)
url1 = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&'+result
print(url1)

第二种方法 对字符串

  • 使用**quote()**方法
import urllib.request

r = '中国'
result = urllib.parse.quote(r)
print(result)
url2 = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd='+result
print(url2)

输出结果:

%E4%B8%AD%E5%9B%BD
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E4%B8%AD%E5%9B%BD

目录
相关文章
|
8月前
python-argparse模块使用
python-argparse模块使用
44 0
|
2月前
|
数据采集 JSON 应用服务中间件
urllib与requests模块万字超详细!!
本文介绍了Python中用于发送网络请求的两个重要模块:`urllib` 和 `requests`。首先,文章详细讲解了 `urllib` 模块的基本使用方法,包括构造请求、发送请求、处理响应等。接着,文章重点介绍了 `requests` 模块,强调了其在企业中的广泛应用,以及如何发送GET和POST请求、处理响应、使用代理、处理Cookie等内容。最后,文章还探讨了 `requests` 模块的高级功能,如处理证书错误、设置超时、使用 `retrying` 模块等,帮助读者全面掌握网络请求的处理技巧。
67 4
|
4月前
|
数据采集 前端开发 数据安全/隐私保护
使用 urllib.parse 模块优雅地处理 URL
使用 urllib.parse 模块优雅地处理 URL
69 9
|
Python
Python参数解析工具argparse.ArgumentParser()
Python参数解析工具argparse.ArgumentParser()
|
Python
flask中遇到ImportError: cannot import name ‘url_encode‘ from ‘werkzeug‘
flask中遇到ImportError: cannot import name ‘url_encode‘ from ‘werkzeug‘
399 0
|
数据采集 XML 存储
urllib模块的使用
urllib模块的使用
66 0
categorical_crossentropy与sparse_categorical_crossentropy的区别
categorical_crossentropy与sparse_categorical_crossentropy的区别
python——argparse 模块(1)
python——argparse 模块(1)
|
Python 容器
python——argparse 模块(2)
python——argparse 模块(2)
|
JSON 数据格式
parse 和parseObject 有什么区别
JSON.parse()返回的结果是Object对象
376 0