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 读写txt文件 json文件的实现方法
Oct 22 Python
Python文件操作基本流程代码实例
Dec 11 Python
解决python3爬虫无法显示中文的问题
Apr 12 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
python实现简单颜色识别程序
Feb 19 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
如何将PySpark导入Python的放实现(2种)
Apr 26 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
2020版Python学习路线图(附学习资料)
Sep 15 Python
python 调整图片亮度的示例
Dec 03 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
WordPress网站性能优化指南
2015/11/18 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
js+html5操作sqlite数据库的方法
2016/02/02 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
python实现简易版计算器
2020/06/22 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
中国宠物用品商城:E宠商城
2016/08/27 全球购物
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
GC是什么?为什么要有GC?
2013/12/08 面试题
企业厂长岗位职责
2013/12/17 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
机关办公室岗位职责
2014/04/16 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
个人先进材料范文
2014/12/30 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python