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的函数嵌套的使用方法
Jan 24 Python
Python中bisect的用法
Sep 23 Python
初步介绍Python中的pydoc模块和distutils模块
Apr 13 Python
python 转换 Javascript %u 字符串为python unicode的代码
Sep 06 Python
Django项目中用JS实现加载子页面并传值的方法
May 28 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
python绘制简单彩虹图
Nov 19 Python
Python使用指定端口进行http请求的例子
Jul 25 Python
Django结合ajax进行页面实时更新的例子
Aug 12 Python
python关于变量名的基础知识点
Mar 03 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 Python
记一次django内存异常排查及解决方法
Aug 07 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
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
深入理解vue中的$set
2017/06/01 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
jQuery实现滚动效果
2017/11/17 jQuery
jquery ztree实现右键收藏功能
2017/11/20 jQuery
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
Python中字符编码简介、方法及使用建议
2015/01/08 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
pandas中Timestamp类用法详解
2017/12/11 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
Python tkinter模版代码实例
2020/02/05 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
物理力学求职信
2014/02/18 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
学校捐书倡议书
2015/04/27 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书