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读写文件方法总结
Jun 09 Python
Django的session中对于用户验证的支持
Jul 23 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
Jul 24 Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 Python
Pycharm 操作Django Model的简单运用方法
May 23 Python
基于python历史天气采集的分析
Feb 14 Python
Django中多种重定向方法使用详解
Jul 17 Python
Python3 虚拟开发环境搭建过程(图文详解)
Jan 06 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
Feb 24 Python
pycharm激活码快速激活及使用步骤
Mar 12 Python
python实现输入三角形边长自动作图求面积案例
Apr 12 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之字符串变相相减的代码
2007/03/19 PHP
php.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
JavaScript 参考教程
2006/12/29 Javascript
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
2020/09/09 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
Python实现简单文本字符串处理的方法
2018/01/22 Python
python使用turtle绘制分形树
2018/06/22 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
Python Series从0开始索引的方法
2018/11/06 Python
Python双链表原理与实现方法详解
2020/02/22 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
财务总监岗位职责
2014/03/07 职场文书
《生命的药方》教学反思
2014/04/08 职场文书
外联部演讲稿
2014/05/24 职场文书
励志演讲稿600字
2014/08/21 职场文书
2015年入党决心书
2015/02/05 职场文书
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers