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过滤函数filter()使用自定义函数过滤序列实例
Aug 26 Python
六个窍门助你提高Python运行效率
Jun 09 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
Python Pandas中根据列的值选取多行数据
Jul 08 Python
Python实现代码统计工具
Sep 19 Python
Python标准库itertools的使用方法
Jan 17 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
python实现移动木板小游戏
Oct 09 Python
pytorch常用数据类型所占字节数对照表一览
May 17 Python
python unittest单元测试的步骤分析
Aug 02 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安装攻略:常见问题解答(二)
2006/10/09 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
JavaScript 高效运行代码分析
2010/03/18 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
Angularjs的键盘事件的绑定
2017/07/27 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
微信小程序文章详情页面实现代码
2018/09/10 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
python继承和抽象类的实现方法
2015/01/14 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
python队列Queue的详解
2019/05/10 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
Python实现一个优先级队列的方法
2020/07/31 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
加拿大购物频道:The Shopping Channel
2016/07/21 全球购物
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
银行自荐信范文
2013/10/07 职场文书
旷课检讨书3000字
2014/02/04 职场文书
领导接待方案
2014/03/13 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python