python模拟http请求

下文主要讲述如何利用python自带的库模拟http请求,为以

#!coding:utf-8 相信这句大家都懂的,不解释

#导入需要的python模块httplib,用来模拟提交http请求,详细的用法可见python帮助手册

import httplib

#导入需要的python模块urllib,用来对数据进行编码
import urllib
#定义请求头

reqheaders={'Content-type':'application/x-www-form-urlencoded',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Host':'www.renren.com',
'Origin':'http://zhichang.renren.com',
'Referer':'http://zhichang.renren.com',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1',}

#定义post的参数

reqdata={'email':'xxxx@xxx.com',
'password':'xxxx',
'autoLogin':'on',
'origURL':'http://zhichang.renren.com/?login_state=rr',
'domain':'renren.com'
}

#对请求参数进行编码

data=urllib.urlencode(reqdata)

#利用httplib库模拟接口请求

#先连接到人人

conn=httplib.HTTPConnection('renren.com')

#提交登录的post请求
conn.request('POST', '/PLogin.do', data, reqheaders)

#获取服务器的返回
res=conn.getresponse()

#打印服务器返回的状态
print(res.status)

#以dictionary形式答应服务器返回的 response header

print(res.msg)
#打印服务器返回请求头中设置的cookie
print(res.getheader('Set-Cookie'))

#以下为运行程序后的结果
登录成功后重定向了
Server: nginx/1.2.0
Date: Sat, 15 Feb 2014 04:47:09 GMT
Content-Length: 80
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Location: http://zhichang.renren.com/?login_state=rr 重定向的URL
Set-Cookie: anonymid=hroelq3l-czxmdy; domain=.renren.com; path=/; expires=Thu, 14-Feb-2019 04:47:09 GMT
Set-Cookie: _de=97FB170A42B4342D1C47A157AD77AAFC1383380866D39FF5; domain=.renren.com; path=/; expires=Tue, 10-Feb-2015 04:47:09 GMT
Set-Cookie: p=31991a0a194c34e606ef1263317b06372; domain=renren.com; path=/; expires=Mon, 17-Mar-2014 04:47:09 GMT
Set-Cookie: ap=229996362; domain=renren.com; path=/; expires=Mon, 17-Mar-2014 04:47:09 GMT
Set-Cookie: first_login_flag=1; domain=renren.com; path=/
Set-Cookie: t=c5424876f4a3363b98b6f92e677f04bc2; domain=.renren.com; path=/
Set-Cookie: t=a0196d1d663ad5a060ee47466123042d; domain=renren.com; path=/xtalk/
Set-Cookie: societyguester=c5424876f4a3363b98b6f92e677f04bc2; domain=.renren.com; path=/
Set-Cookie: id=229996362; domain=.renren.com; path=/ (这个是返回的人人ID)
Set-Cookie: xnsid=cc216a6b; domain=.renren.com; path=/ (有这个就登录成功了)
Set-Cookie: loginfrom=syshome; domain=.renren.com; path=/

#以下就是cookie了,以后发请求,就可以带上这个cookie

anonymid=hroelq3l-czxmdy; domain=.renren.com; path=/; expires=Thu, 14-Feb-2019 04:47:09 GMT, _de=97FB170A42B4342D1C47A157AD77AAFC1383380866D39FF5; domain=.renren.com; path=/; expires=Tue, 10-Feb-2015 04:47:09 GMT, p=31991a0a194c34e606ef1263317b06372; domain=renren.com; path=/; expires=Mon, 17-Mar-2014 04:47:09 GMT, ap=229996362; domain=renren.com; path=/; expires=Mon, 17-Mar-2014 04:47:09 GMT, first_login_flag=1; domain=renren.com; path=/, t=c5424876f4a3363b98b6f92e677f04bc2; domain=.renren.com; path=/, t=a0196d1d663ad5a060ee47466123042d; domain=renren.com; path=/xtalk/, societyguester=c5424876f4a3363b98b6f92e677f04bc2; domain=.renren.com; path=/, id=229996362; domain=.renren.com; path=/, xnsid=cc216a6b; domain=.renren.com; path=/, loginfrom=syshome; domain=.renren.com; path=/

后利用python做API测试做准备。

只讲述模拟http的过程,具体到自己用的时候,要以自己的应用为准做出适当的调整。

 

转载于:https://www.cnblogs.com/sea520/p/10827892.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

王道计算机组成原理 物理层整理 超详细版

数据通信 通信的目的是传送信息。 数据:传送信息的实体,通常是有意义的符号序列。 信号:数据的电气/电磁的表现,是数据在传输过程中的存在形式。 ​ 数字信号:代表消息的参数取值是离散的。 ​ 模拟信号&#xf…

linux基础知识——mmap

1.mmap函数 \qquad返回值:成功时,返回创建的映射区首地址;失败时,返回宏MAP_FAILED。 \qquad参数: \qquad\quad第一个参数addr:建立映射区的首地址,有linux内核指定,使用时&#xff…

威胁生存!科学家警告灾难性“气候临界点”已逼近

来源:中国新闻网 中新网10月26日电 综合报道,从联合国的一份报告草案中,科学家已发现多个灾难性的“气候临界点”。专家警告,临界点之间相互关联,可能产生连锁反应,成为一种生存威胁。据报道,根…

视音频开发测试文件下载

视音频开发过程中寻找各种合适的测试视频非常麻烦,无意间发现一个国外的网站提供各种格式和大小的视音频文件下载, 但是下载速度很慢,有总比没有好,凑合用吧: https://www.sample-videos.com/ 转载于:https://www.cnbl…

王道计算机网络 网络层整理 超详细版

网络层功能概述 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。 1、路由选择与分组转发 2、异构网络互联 3、拥塞控制 数据交换方式 电路交换 在进行数据传输时,两个结点之间必须先建立一条专用…

Linux的基础知识——mmap父子通信进程和匿名通信

1.mmap父子进程通信 \qquad父子等有血缘关系的进程之间也可以通过mmap建立的映射区来完成数据通信。但相应的要在创建映射区时候指定对应的标志位参数flags: \qquadMAP_PRIVATE:父子进程各自独占映射区;MAP_SHARED:父子进程共享映射区。 2.m…

ios点击有300毫秒延迟,输入框必须重压或长按才能获取焦点唤起软键盘

以下方法主要针对在vue中的使用 // ios点击有300毫秒延迟 1. 安装依赖包cnpm install fastclick --save 2. 在 /src/main.js 中引入并使用import FastClick from fastclickFastClick.attach(document.body)// 输入框必须重压或长按才能获取焦点唤起软键盘 // 这是由于上面引入了…

Forerunner:首个面向“多未来”的推测执行技术

来源:微软研究院AI头条编者按:10月26-29日,系统领域的全球顶会 SOSP 2021 在线上举办。在本届大会上,微软亚洲研究院研究员陈洋、郭众鑫、李润怀(实习生,浙江大学)、陈硕、周礼栋、张宪以及浙江…

linux的基础知识——信号的概念

1.计算机信号的特点 \qquad简单;不能携带大量信息;满足某个特设条件才发送 2.信号的机制 \qquadA与B两个进程,A向B发送一个信号,此时B进程正在执行自己的程序,在收到信号时,会暂停程序的执行,先…

2021-07-23 小记

https://github.com/XiaoJing-C 整理了一下GitHub,网络连接总是不稳定,uu们有无好的解决方法?

Gartner发布对2022年及以后IT组织和用户的十大预测

来源:Gartner中国编辑:蒲蒲Gartner于近日发布对2022年及以后的十大战略预测。Gartner的十大预测从三个方面探讨了企业和IT领导人在持续中断和不确定性中获得的经验教训。这三个方面分别是:朝以人为本的方向推进、努力提高韧性以及超越期望的能…

王道计算机网络 传输层整理 超详细版

传输层是主机才有的层次。 传输层的功能 1、传输层提供进程和进程之间的逻辑通信。(网络层提供主机之间的通信) 逻辑通信:传输层之间的通信好像是沿着水平方向传送数据,但事实上这两个传输层之间并没有一条水平方向的物理连接。…

这个最基本的生命细节才被揭开——25毫秒核孔穿梭

来源:生物通细胞中的所有蛋白质都是由复杂的分子机器组装而成的。这些核糖体的前体在细胞核中产生,然后通过所谓的核孔进入细胞。波恩大学和苏黎世联邦理工大学的研究人员首次在活细胞中拍摄了这个基本过程。他们的实验提高了对核糖体是如何产生的理解。…

计算机网络——基本介绍

1.计算机网络的概念 \qquad计算机网络是一个将分散的,具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 \qquad这里的计算机系统,也可以成为端系统,其包括但不限…

Mysql data type(数据类型)

MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、…

王道计算机网络 应用层整理 超详细版

应用层概述 应用层对应用程序的通信提供服务。 应用层协议定义: 应用进程交换的报文类型(请求/响应) 各种报文类型的语法,如报文中的各个字段及其详细描述。 字段的语义,即包含在字段中的信息的含义。 进程何时、…

Facebook正式改名Meta,一个元宇宙新纪元由此开始

All in Metaverse,扎克伯格豪赌一个未来。来源:硅星人文:Juny 编辑:Lianzi美西时间早上7点,硅谷的天刚蒙蒙亮。Facebook硅谷总部前公司标志牌被蒙上了一层幕布。工作人员在标志牌前拉起了屏障,静静等待着…

计算机网络——标准化工作及相关组织

1.标准的分类 \qquad法定标准:由权威机构制定的,正式的,合法的标准,比如OSI标准;事实标准:某些强势产品在经过时间之后,这些产品的协议和技术就成为了标准,比如TCP/IP协议。 2.标准…

使用 Blender* 重新拓扑 VR 和游戏素材

本文介绍如何将网格重新拓扑成一个整洁的低密度模型,然后 UV 解包该网格,以便将纹理贴添加至新模型。本文还将探讨如何使用免费工具,比如 Blender* 及其 Bsurface 插件,重新拓扑雕塑的 3D 网格。查看详情转载于:https://www.cnblo…

中缀表达式转换为前缀或后缀表达式的手工做法

以 a/b ( c*d - e*f) / g 为例: 步骤1:按照运算符的优先级对所有的运算单元加括号。 ((a/b) (( (c*d) - (e*f)) / g)) 步骤2:转换为前缀或后缀表达式。 前缀:把运算符号移动到对应的括号前面,式子变为 (/(ab)/(-(*(…