浏览器地址栏搜索 刘若英
https://www.baidu.com/s?word=刘若英&tn=71069079_1_hao_pg&ie=utf-8
但是复制到文件中是这样的:
https://www.baidu.com/s?word=%E5%88%98%E8%8B%A5%E8%8B%B1&tn=71069079_1_hao_pg&ie=utf-8

这是因为浏览器对中文请求参数进行了转码
用代码访问网站所发的请求中如果有中文也必须是转码之后的。这里需要用到urllib.parse.urlencode 方法。
这个方法的作用就是将字典里面所有的键值转化为query-string格式(key=value&key=value),并且将中文转码

import urllib.request
import urllib.parse
import os

url = ‘http://www.baidu.com/s?’

wd = input('请输入要搜索关键字: ')
“”"
word=刘若英&tn=71069079_1_hao_pg&ie=utf-8
“”"
data = {
‘word’: wd,
‘tn’: ‘71069079_1_hao_pg’,
‘ie’: ‘utf-8’
}

query_string = urllib.parse.urlencode(data)

拼接获取完整url

url += query_string

发起请求,获取响应

response = urllib.request.urlopen(url=url)

filename = wd + ‘.html’

dirname = ‘./html’

if not os.path.exists(dirname):
os.mkdir(dirname)

filepath = dirname + ‘/’ + filename

以二进制写入文件

with open(filepath, ‘wb’) as fp:

fp.write(response.read())

或者以utf8编码写入文件

with open (filepath, ‘w’, encoding=‘utf8’) as fp:
fp.write(response.read().decode(‘utf8’))

作者:米酒真香
链接:https://www.jianshu.com/p/cfb411ba7167
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

[转载]urllib.parse.urlencode转换get请求参数(resquest中带中文的情况)相关推荐

  1. 一木.溪桥学爬虫-03:请求模块urllib、 urllib.request、urllib.parse.urlencode、urllib.parse.quote(str)、.unquote()

    一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-03:请求模块urllib. urllib.request.urllib.parse.ur ...

  2. 详解Python3的urllib.parse.urlencode函数

    参考资料: Python3的urllib.parse常用函数小结 data=bytes(urllib.parse.urlencode({"name":"Jack" ...

  3. urlencode quote unquote (url 中带中文参数)

    目录: urlencode & quote & unquote (url 中带中文参数) python httplib urllib urllib2区别(一撇) 当url地址含有中文或 ...

  4. 详解Spring MVC请求参数类型,解决中文乱码问题,自定义类型转换器,Spring MVC相关注解

    #SpringMVC SpringMVC请求 简单类型 简单类型包括:基本类型,基本类型的包装类型,字符串 编写Controller @RequestMapping("/param" ...

  5. java发送get请求参数_HttpClient发送带参数的Get请求

    HttpClient 是apache 组织下面的一个用于处理HTTP 请求和响应的开源工具.所用jar包为httpclient-4.3.6.jar.httpcore-4.3.3.jar.httpmim ...

  6. java utf8 简繁转换 类库_在Java中进行中文繁体简体转换,基于OpenCC(Open Chinese Convert)方案...

    一.OpenCC介绍 OpenCC (Open Chinese Convert,开放中文转换) 是一个用于中文简繁转换的开源项目,支持词汇级别的转换.异体字转换和地区习惯用词转换(中国大陆.台湾.香港 ...

  7. python get方法请求参数_python中requests库get方法带参数请求

    起因是想爬五等分的花嫁的漫画.这是其中的一个坑 先上代码 data={'cid':567464,'page':1,'key':'','language':1,'gtk':6,'_cid':567464 ...

  8. js获取url中的参数,url中传递中文的时候通过js解码的方式

    如果传递的参数是: <a href="${pageContext.request.contextPath}/productdisplay/productDisplay_productD ...

  9. urllib.parse

    1 url分解 import urllib.parse 2 3 result = urllib.parse.urlparse('http://www.baidu.com') 4 print(resul ...

最新文章

  1. 4 用python进行OpenCV实战之图像变换1(平移)
  2. ForefrontTMG关于单一的网络适配器限制
  3. 群体决策是如何误入歧途的
  4. jQuery源码学习(1)——addClass
  5. 2018年12月2526日
  6. 伪随机交织抑制突发噪声的MATLAB仿真(采用(2,1,3)卷积码)
  7. React 深度学习:ReactFiber
  8. python编程理论_Python并发编程理论篇,来看看
  9. 为什么做的报表领导不满意,如何提升报表的价值?
  10. Java之品优购部署_day01(10)
  11. linux初级命令行
  12. js修改IOS微信title
  13. 2022第七届中国少儿模特明星盛典 中山赛区海选赛 圆满落幕
  14. 取到崭新连号人民币,我却一点都不开心
  15. matplotlib入门基础(五)轴坐标范围 轴刻度比例 轴刻度
  16. 自动化测试框架[各自动化测试框架大比拼]
  17. 苹果表情 保存mysql_IOS表情存入MYSQL数据库失败
  18. i(1<<j)什么意思?
  19. vue 插件qs使用
  20. vlookup反向查询_VLOOKUP的反向查找功能

热门文章

  1. 基于SpringBoot的哔哩哔哩动态爬取网站
  2. Lua Python及Shell语法异同点
  3. 超链接的hideFocus属性
  4. VS2012坦克大战的部分源码
  5. cool cooler coolest
  6. 安卓TV开发(八) 移动智能终端多媒体爬虫技术 获取加载网页视频源
  7. Android倒计时实现
  8. 初步使用计算机ppt课件,《计算机应用基础教程》第13课:网页制作初步课件.ppt...
  9. Linux —— 时间(tzselect、timedatactl命令,查看和修改时区,修改时区为东八区)
  10. 蓝桥杯真题 包子凑数 c++代码实现 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有 N 种蒸笼,其中第 i种蒸笼恰好能放 Ai个包子。