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实现ipsec开权限实例
Nov 11 Python
python使用PyGame模块播放声音的方法
May 20 Python
python获取文件扩展名的方法
Jul 06 Python
Python的自动化部署模块Fabric的安装及使用指南
Jan 19 Python
详解python的数字类型变量与其方法
Nov 20 Python
python学习之面向对象【入门初级篇】
Jan 21 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 Python
浅谈python 读excel数值为浮点型的问题
Dec 25 Python
python3转换code128条形码的方法
Apr 17 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
解决TensorFlow程序无限制占用GPU的方法
Jun 30 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
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
js实现数字滚动特效
2019/12/16 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
Django中使用Celery的教程详解
2018/08/24 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
用Python解数独的方法示例
2019/10/24 Python
python处理RSTP视频流过程解析
2020/01/11 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
竞选部长演讲稿
2014/04/26 职场文书
助理政工师申报材料
2014/06/03 职场文书
房屋租赁协议书
2014/10/18 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
2015年新教师工作总结
2015/04/28 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
致运动员的广播稿
2015/08/19 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python