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 参数列表中的self 显式不等于冗余
Dec 01 Python
python中的一些类型转换函数小结
Feb 10 Python
python 生成器协程运算实例
Sep 04 Python
对pandas数据判断是否为NaN值的方法详解
Nov 06 Python
对python中的乘法dot和对应分量相乘multiply详解
Nov 14 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
基于python二叉树的构造和打印例子
Aug 09 Python
python Django框架实现web端分页呈现数据
Oct 31 Python
Python小程序之在图片上加入数字的代码
Nov 26 Python
使用openCV去除文字中乱入的线条实例
Jun 02 Python
python人工智能human learn绘图可创建机器学习模型
Nov 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过滤XSS攻击的函数
2013/11/12 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
基于JavaScript代码实现微信扫一扫下载APP
2015/12/30 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
Python下使用Psyco模块优化运行速度
2015/04/05 Python
python去除字符串中的换行符
2017/10/11 Python
numpy.transpose对三维数组的转置方法
2018/04/17 Python
python向图片里添加文字
2019/11/26 Python
增大python字体的方法步骤
2020/07/05 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
如何写一份好的自荐信
2014/01/02 职场文书
电子装配专业毕业生求职信
2014/04/23 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
新郎接新娘保证书
2015/05/08 职场文书
入党介绍人意见2015
2015/06/01 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技