基于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读取json文件并将数据插入到mongodb的方法
Mar 23 Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
python 为什么说eval要慎用
Mar 26 Python
如何在Python中实现goto语句的方法
May 18 Python
django将数组传递给前台模板的方法
Aug 06 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
Django 允许局域网中的机器访问你的主机操作
May 13 Python
python3中TQDM库安装及使用详解
Nov 18 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
Jan 30 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
做一个有下拉功能的留言版
2006/10/09 PHP
php实现在线生成条形码示例分享(条形码生成器)
2013/12/30 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
Smarty模板语法详解
2019/07/20 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
python简单猜数游戏实例
2015/07/09 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
python中map的基本用法示例
2018/09/10 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
银行实习生的自我评价
2014/01/13 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
机器人总动员观后感
2015/06/09 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书
科级干部培训心得体会
2016/01/06 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
python对文档中元素删除,替换操作
2022/04/02 Python