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 相关文章推荐
在Django中使用Sitemap的方法讲解
Jul 22 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
Jun 06 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
python Flask 装饰器顺序问题解决
Aug 08 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
Python中Numpy ndarray的使用详解
May 24 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
Pytorch maxpool的ceil_mode用法
Feb 18 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 Python
Python分析最近大火的网剧《隐秘的角落》
Jul 02 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中的错误处理、异常处理机制分析
2012/05/07 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
JS中操作JSON总结
2020/12/06 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
使用python实现knn算法
2017/12/20 Python
破解安装Pycharm的方法
2018/10/19 Python
使用Python实现音频双通道分离
2020/12/25 Python
python matlab库简单用法讲解
2020/12/31 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
软件配置管理有什么好处
2015/04/15 面试题
新闻专业应届生求职信
2013/10/31 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis