python爬虫 urllib模块发起post请求过程解析

作者:minger_lcm 时间:2022-02-07 22:52:53 

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请求过程解析

来源:https://www.cnblogs.com/mingerlcm/p/11369444.html

标签:python,爬虫,urllib,模块,post,请求
0
投稿

猜你喜欢

  • 最近Python有点火? 给你7个学习它的理由!

    2021-08-03 01:40:05
  • 设计评论表单[译]

    2009-03-25 20:41:00
  • pytorch教程之网络的构建流程笔记

    2021-11-24 10:58:59
  • Python中多线程的创建及基本调用方法

    2021-12-14 00:26:26
  • Vue cli构建及项目打包以及出现的问题解决

    2023-07-02 16:46:46
  • python实现五子棋小程序

    2023-12-04 20:49:37
  • Python模块zipfile原理及使用方法详解

    2022-03-24 10:33:37
  • Mysql带And关键字的多条件查询语句

    2024-01-14 08:41:17
  • C#连接Oracle数据库的实例方法

    2024-01-20 14:37:05
  • Python多线程下载文件的方法

    2021-12-26 05:21:32
  • python 实现多维数组(array)排序

    2022-03-26 07:35:48
  • 一篇文章带你学习Python3的高阶函数

    2021-04-24 00:58:51
  • sqlserver bcp(数据导入导出工具)一般用法与命令详解

    2024-01-27 03:12:08
  • ThinkPHP开发框架函数详解:C方法

    2023-10-18 03:27:04
  • Python实现识别手写数字大纲

    2022-06-28 05:19:13
  • Python区块链创建Genesis Block教程

    2022-04-17 10:44:15
  • 利用Python分析一下最近的股票市场

    2023-06-14 23:46:03
  • python 解析XML python模块xml.dom解析xml实例代码

    2022-11-24 15:15:09
  • python使用pil生成缩略图的方法

    2022-06-07 13:07:44
  • 在python中使用正则表达式查找可嵌套字符串组

    2021-10-07 07:02:06
  • asp之家 网络编程 m.aspxhome.com