基于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的Template使用指南
Sep 11 Python
python基于xmlrpc实现二进制文件传输的方法
Jun 02 Python
Python通过poll实现异步IO的方法
Jun 04 Python
python matplotlib画图实例代码分享
Dec 27 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 Python
Python格式化输出字符串方法小结【%与format】
Oct 29 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
python获取txt文件词向量过程详解
Jul 05 Python
Python中新式类与经典类的区别详析
Jul 10 Python
TensorFlow固化模型的实现操作
May 26 Python
python 实现关联规则算法Apriori的示例
Sep 30 Python
python录音并调用百度语音识别接口的示例
Dec 01 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
深入解析php之apc
2013/05/15 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
深入探究Django中的Session与Cookie
2017/07/30 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
Python遍历numpy数组的实例
2018/04/04 Python
介绍一下Python下range()函数的用法
2013/11/07 面试题
《诺贝尔》教学反思
2014/02/17 职场文书
安踏广告词改编版
2014/03/21 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
小学生环保倡议书
2014/05/15 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
民事和解协议书格式
2014/11/29 职场文书
退休欢送会致辞
2015/07/31 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python