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类定义的讲解
Nov 01 Python
Python中for循环详解
Jan 17 Python
Python3基础之函数用法
Aug 13 Python
python统计文本字符串里单词出现频率的方法
May 26 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
python版学生管理系统
Jan 10 Python
使用python获取电脑的磁盘信息方法
Nov 01 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
django 连接数据库 sqlite的例子
Aug 14 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 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 显示客户端IP与服务器IP的代码
2010/10/12 PHP
php常用文件操作函数汇总
2014/11/22 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
php常用的工具开发整理
2019/09/26 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
使用Python编写一个模仿CPU工作的程序
2015/04/16 Python
Python使用functools实现注解同步方法
2018/02/06 Python
通过Pandas读取大文件的实例
2018/06/07 Python
Python3.5文件修改操作实例分析
2019/05/01 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
多重CSS背景动画实现方法示例
2014/04/04 HTML / CSS
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
努比亚手机官网:nubia
2016/10/06 全球购物
印度民族服装购物网站:BIBA
2019/08/05 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
秘书英文求职信范文
2014/01/31 职场文书
建筑工地大门标语
2014/06/18 职场文书
植树节标语
2014/06/27 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
运动会1000米加油稿
2015/07/21 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang