python爬虫 urllib模块发起post请求过程解析


Posted in Python onAugust 20, 2019

urllib模块发起的POST请求

案例:爬取百度翻译的翻译结果

1.通过浏览器捉包工具,找到POST请求的url

针对ajax页面请求的所对应url获取,需要用到浏览器的捉包工具。查看百度翻译针对某个字条发送ajax请求,所对应的url

点击clear按钮可以把抓包工具,所抓到请求清空

python爬虫 urllib模块发起post请求过程解析

然后填上翻译字条发送ajax请求,红色框住的都是发送的ajax请求

python爬虫 urllib模块发起post请求过程解析

抓包工具All按钮代表 显示抓到的所有请求 ,包括GET、POST请求 、基于ajax的POST请求
XHR代表 只显示抓到的基于ajax的POST请求

python爬虫 urllib模块发起post请求过程解析

哪个才是我们所要的基于ajax的POST请求,这个POST请求是携带翻译字条的苹果请求参数

python爬虫 urllib模块发起post请求过程解析

再看看这个POST请求 对应的请求URL ,这个URL是我们要请求的URL

python爬虫 urllib模块发起post请求过程解析

发起POST请求之前,要处理POST请求携带的参数 3步流程:

一、将POST请求封装到字典

二、使用parse模块中的urlencode(返回值类型是字符串类型)进行编码处理

三、将步骤二的编码结果转换成byte类型

import urllib.request
import urllib.parse
# 1.指定url
url = 'https://fanyi.baidu.com/sug'
# 发起POST请求之前,要处理POST请求携带的参数 流程:
# 一、将POST请求封装到字典
data = {
  # 将POST请求所有携带参数放到字典中
  'kw':'苹果',
}
# 二、使用parse模块中的urlencode(返回值类型是字符串类型)进行编码处理
data = urllib.parse.urlencode(data)

# 三、将步骤二的编码结果转换成byte类型
data = data.encode()

'''2. 发起POST请求:urlopen函数的data参数表示的就是经过处理之后的
POST请求携带的参数
'''
response = urllib.request.urlopen(url=url,data=data)

data = response.read()
print(data)

把拿到的翻译结果 去json在线格式校验(在线JSON校验格式化工具(Be JSON)),

点击格式化校验和unicode转中文

python爬虫 urllib模块发起post请求过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 Python
Python实现一个转存纯真IP数据库的脚本分享
May 21 Python
Python 统计字数的思路详解
May 08 Python
为什么Python中没有"a++"这种写法
Nov 27 Python
Python 的AES加密与解密实现
Jul 09 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
python中sys模块是做什么用的
Aug 16 Python
Python爬虫新手入门之初学lxml库
Dec 20 Python
如何用python开发Zeroc Ice应用
Jan 29 Python
详解Go语言运用广度优先搜索走迷宫
Jun 23 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 #Python
python multiprocessing模块用法及原理介绍
Aug 20 #Python
python 并发编程 阻塞IO模型原理解析
Aug 20 #Python
PyTorch中常用的激活函数的方法示例
Aug 20 #Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 #Python
python批量解压zip文件的方法
Aug 20 #Python
pytorch获取vgg16-feature层输出的例子
Aug 20 #Python
You might like
php中去除所有js,html,css代码
2010/10/12 PHP
php的array_multisort()使用方法介绍
2012/05/16 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
php构造函数与析构函数
2016/04/23 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
Python 列表(List)操作方法详解
2014/03/11 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
python FTP编程基础入门
2021/02/27 Python
产品质量承诺书
2014/03/27 职场文书
卖车协议书
2014/04/21 职场文书
学校节能减排方案
2014/06/13 职场文书
临床专业自荐信
2014/06/22 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
婚育证明样本
2015/06/16 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书