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中kmeans聚类实现代码
Feb 23 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
对python3.4 字符串转16进制的实例详解
Jun 12 Python
python文本数据处理学习笔记详解
Jun 17 Python
python中比较两个列表的实例方法
Jul 04 Python
python设计tcp数据包协议类的例子
Jul 23 Python
Python 过滤错误log并导出的实例
Dec 26 Python
Django模型中字段属性choice使用说明
Mar 30 Python
Python基于gevent实现高并发代码实例
May 15 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
Jul 06 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 IP及IP段进行访问限制的代码
2008/12/17 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
python每次处理固定个数的字符的方法总结
2013/01/29 Python
Python re模块介绍
2014/11/30 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
python for 循环获取index索引的方法
2019/02/01 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
django和flask哪个值得研究学习
2020/07/31 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
Java中实现多态的机制是什么?
2014/12/07 面试题
C语言开发工程师测试题
2016/12/20 面试题
软件测试工程师面试问题精选
2016/10/28 面试题
加入学生会演讲稿
2014/04/24 职场文书
普通话演讲稿
2014/09/03 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
公司2015年终工作总结
2015/05/26 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
员工给公司的建议书
2019/06/24 职场文书
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技