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 27 Python
详解Python读取配置文件模块ConfigParser
May 11 Python
linux环境下python中MySQLdb模块的安装方法
Jun 16 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
python3使用GUI统计代码量
Sep 18 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
python DataFrame转dict字典过程详解
Dec 26 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 Python
Python模块常用四种安装方式
Oct 20 Python
python 实现图片裁剪小工具
Feb 02 Python
Python实现老照片修复之上色小技巧
Oct 16 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与ASP
2006/10/09 PHP
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
Javasipt:操作radio标签详解
2013/12/30 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
Python中return语句用法实例分析
2015/08/04 Python
深入理解Python变量与常量
2016/06/02 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
python正则表达式面试题解答
2020/04/28 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
python实现倒计时小工具
2019/07/29 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
python修改FTP服务器上的文件名
2019/09/11 Python
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
几个判断型的面试题
2012/07/03 面试题
关于廉洁的广播稿
2014/01/30 职场文书
医德医风自我评价
2014/09/19 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
室外天线与收音机天线杆接合方法
2022/04/05 无线电
vue实力踩坑之push当前页无效
2022/04/10 Vue.js