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中定义结构体的方法
Mar 04 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
Django处理文件上传File Uploads的实例
May 28 Python
CentOS 7 安装python3.7.1的方法及注意事项
Nov 01 Python
Python中的枚举类型示例介绍
Jan 09 Python
Python中logging实例讲解
Jan 17 Python
Django自定义用户登录认证示例代码
Jun 30 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 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实现最简单的MVC框架实例教程
2014/09/08 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
python内存管理机制原理详解
2019/08/12 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
金宝贝童装官网:Gymboree
2016/08/31 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
告诉你怎样写创业计划书
2014/01/27 职场文书
网页美工求职信
2014/02/15 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
领导班子四风表现材料
2014/08/23 职场文书
python OpenCV学习笔记
2021/03/31 Python
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫