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中文显示乱码的解决方法
Oct 11 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
python并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
python3实现全角和半角字符转换的方法示例
Sep 21 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
python 常见字符串与函数的用法详解
Nov 23 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
基于python定位棋子位置及识别棋子颜色
Jul 26 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
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
Yii视图操作之自定义分页实现方法
2016/07/14 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
js的正则test,match,exec详细解析
2014/01/29 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
详解js中==与===的区别
2017/01/08 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
用js编写留言板
2020/03/17 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
Django分组聚合查询实例分享
2020/04/29 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
迪奥官网:Dior.com
2018/12/04 全球购物
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
一组SQL面试题
2016/02/15 面试题
公益活动策划方案
2014/01/09 职场文书
大学生活动策划方案
2014/02/10 职场文书
机械工程师岗位职责
2014/06/16 职场文书
世博会口号
2014/06/20 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
文明倡议书
2015/01/19 职场文书
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript
Python List remove()实例用法详解
2021/08/02 Python
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技