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 生成不重复的随机数的代码
May 15 Python
Python中使用 Selenium 实现网页截图实例
Jul 18 Python
跟老齐学Python之玩转字符串(2)
Sep 14 Python
python中验证码连通域分割的方法详解
Jun 04 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 Python
python学生管理系统
Jan 30 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
用Python配平化学方程式的方法
Jul 20 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
详解Python自动化之文件自动化处理
Jun 21 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 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
js 编程笔记 无名函数
2011/06/28 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
canvas实现刮刮卡效果
2017/03/14 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
Python何时应该使用Lambda函数
2019/07/02 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
django 外键创建注意事项说明
2020/05/20 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
自我鉴定书范文
2013/10/02 职场文书
高中军训感言400字
2014/02/24 职场文书
益达广告词
2014/03/14 职场文书
公司合作意向书
2014/04/01 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
护士节策划方案
2014/05/19 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
网络管理员岗位职责
2015/02/12 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
公司欠款证明
2015/06/24 职场文书
离职告别感言
2015/08/04 职场文书
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技