基于Python的Post请求数据爬取的方法详解


Posted in Python onJune 14, 2019

为什么做这个

和同学聊天,他想爬取一个网站的post请求

观察

该网站的post请求参数有两种类型:(1)参数体放在了query中,即url拼接参数(2)body中要加入一个空的json对象,关于为什么要加入空的json对象,猜测原因为反爬虫。既有query参数又有空对象体的body参数是一件脑洞很大的事情。
一开始先在 apizza网站 上了做了相关实验才发现上面这个规律的,并发现该网站的请求参数要为raw形式,要是直接写代码找规律不是一件容易的事情。

源码

import requests
import json
headers = {
    'Accept':'application/json, text/javascript, */*; q=0.01',
    'X-Requested-With':'XMLHttpRequest',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36',
    'Content-Type':'application/json',
    'Accept-Encoding':'gzip, deflate',
    'Accept-Language':'zh-CN,zh;q=0.8',
    'Cache-Control':'no-cache',
  }
#空的对象,body参数
data = {}
data = json.dumps(data)
page = 0
url = '网站地址,后面为参数?param1=1¶m1='+str(page)
response = requests.post(url = url,data=data ,headers =headers )
print(response.url)
print(response.text)

总结

  • 现在相关工具中发现现象
  • 请求方式确定:post还是get或者其它
  • 参数类型:form-data还是raw或者其它
  • 参数位置:若是post请求,在query中还是body中,还是二者皆有

ps:python requests 发起http POST 请求

python requests 发起http POST 请求,带参数,带请求头:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
url = 'http://official-account/app/messages/group'
body = {"type": "text", "content": "测试文本", "tag_id": "20717"}
headers = {'content-type': "application/json", 'Authorization': 'APP appid = 4abf1a,token = 9480295ab2e2eddb8'}
#print type(body)
#print type(json.dumps(body))
# 这里有个细节,如果body需要json形式的话,需要做处理
# 可以是data = json.dumps(body)
response = requests.post(url, data = json.dumps(body), headers = headers)
# 也可以直接将data字段换成json字段,2.4.3版本之后支持
# response = requests.post(url, json = body, headers = headers)
# 返回信息
print response.text
# 返回响应头
print response.status_code

总结

以上所述是小编给大家介绍的基于Python的Post请求数据爬取的方法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python交换变量
Sep 06 Python
在Python的web框架中配置app的教程
Apr 30 Python
Python版微信红包分配算法
May 04 Python
python的random模块及加权随机算法的python实现方法
Jan 04 Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
Django通过json格式收集主机信息
May 29 Python
如何基于Python爬取隐秘的角落评论
Jul 02 Python
python中np是做什么的
Jul 21 Python
Python判断变量是否是None写法代码实例
Oct 09 Python
Python-OpenCV实现图像缺陷检测的实例
Jun 11 Python
Appium+python自动化怎么查看程序所占端口号和IP
Jun 14 #Python
Python中py文件转换成exe可执行文件的方法
Jun 14 #Python
10 行Python 代码实现 AI 目标检测技术【推荐】
Jun 14 #Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 #Python
Python Tkinter 简单登录界面的实现
Jun 14 #Python
python tkinter实现界面切换的示例代码
Jun 14 #Python
对Python中TKinter模块中的Label组件实例详解
Jun 14 #Python
You might like
星际争霸任务指南——神族
2020/03/04 星际争霸
MySQL修改密码方法总结
2008/03/25 PHP
PHP Directory 函数的详解
2013/03/07 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
使javascript也能包含文件
2006/10/26 Javascript
setAttribute 与 class冲突解决
2008/02/17 Javascript
javascript indexOf函数使用说明
2008/07/03 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
vue登录注册实例详解
2019/09/14 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
学习python的几条建议分享
2013/02/10 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
幼儿园托班开学寄语
2014/01/18 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
法定代表人授权委托书
2014/09/19 职场文书
2015年党总支工作总结
2015/05/25 职场文书