Python3使用requests登录人人影视网站的方法


Posted in Python onMay 11, 2016

早就听说requests的库的强大,只是还没有接触,今天接触了一下,发现以前使用urllib,urllib2等方法真是太搓了……

这里写些简单的使用初步作为一个记录

本文继续练习使用requests登录网站,人人影视有一项功能是签到功能,需要每天登录签到才能升级。

下面的代码python代码实现了使用requests登录网站的过程。

以下是使用fiddler抓包得到完整的HTTP请求头:

POST http://www.zimuzu.tv/User/Login/ajaxLogin HTTP/1.1
Host: www.zimuzu.tv
Connection: keep-alive
Content-Length: 102
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://www.zimuzu.tv
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36
Content-Type: application/x-www-form-urlencoded
DNT: 1
Referer: http://www.zimuzu.tv/user/login
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: PHPSESSID=st40f3vohv6q16ec3atekimba0; last_item:10733=Game.of.Thrones.S06E01.The.Red.Woman.1080p.WEB-DL.DD5.1.H.264-NTb.mkv; last_item_date:10733=1461856566; mykeywords=a%3A2%3A%7Bi%3A0%3Bs%3A6%3A%22%E7%A1%85%E8%B0%B7%22%3Bi%3A1%3Bs%3A14%3A%22Silicon+Valley%22%3B%7D; zmz_rich=2
account=你的用户名&password=你的密码&remember=1&url_back=http%3A%2F%2Fwww.zimuzu.tv%2Fuser%2Fsign

python3使用requests登录人人影视网站.py代码:

"""
python3使用requests登录人人影视网站.py
2016年5月11日 07:33:59 codegay
参考资料requests文档:
http://cn.python-requests.org/zh_CN/latest/
四种常见的 POST 提交数据方式
https://imququ.com/post/four-ways-to-post-data-in-http.html
"""
import re
import requests
#requests 安装命令:pip install requests
loginurl='http://www.zimuzu.tv/User/Login/ajaxLogin'
surl='http://www.zimuzu.tv/user/sign'
httphead={
'Accept':'application/json, text/javascript, */*; q=0.01',
'Origin':'http://www.zimuzu.tv',
'X-Requested-With':'XMLHttpRequest',
'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded',
}
data="account=用户名&password=密码&remember=1"
session=requests.Session()
login=session.post(loginurl,data=data,headers=httphead)
print(login.cookies)#打印登录后取得到cookies对象
print(login.json()) 
getstat=session.get(surl).text.split("\n") #访问签到页面,显示最近三次登录时间
[print(r) for r in getstat if "三次登录时间" in r]

对比其中两者可见,有一些HTTP头省略掉也能达到目的,毕竟每次手动请求头感觉挺麻烦的。

在fidder 中Connection: keep-alive Content-Length: 两项不能省略,ncat之类的工具中也不能省略Content-Length,如果改动了post的数据,需要手动修正Content-Length的值。

在python中可以省略掉Content-Length,我猜python已经帮我们处理了。

关于python3使用requests登录人人影视网站的方法就给大家介绍这么多,希望对大家有所帮助!

Python 相关文章推荐
python 多进程通信模块的简单实现
Feb 20 Python
Python深入学习之装饰器
Aug 31 Python
Python爬虫模拟登录带验证码网站
Jan 22 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
Jul 01 Python
python的scikit-learn将特征转成one-hot特征的方法
Jul 10 Python
Django 表单模型选择框如何使用分组
May 16 Python
Django框架自定义session处理操作示例
May 27 Python
Python随机函数库random的使用方法详解
Aug 21 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
使用Python和百度语音识别生成视频字幕的实现
Apr 09 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
python re模块常见用法例举
Mar 01 Python
在Django中进行用户注册和邮箱验证的方法
May 09 #Python
Python数据类型详解(三)元祖:tuple
May 08 #Python
Python数据类型详解(二)列表
May 08 #Python
Python数据类型详解(一)字符串
May 08 #Python
Python常用知识点汇总
May 08 #Python
Python对list列表结构中的值进行去重的方法总结
May 07 #Python
Python环境下安装使用异步任务队列包Celery的基础教程
May 07 #Python
You might like
我的论坛源代码(十)
2006/10/09 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
PDO::errorCode讲解
2019/01/28 PHP
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
Python的地形三维可视化Matplotlib和gdal使用实例
2017/12/09 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
Ajax的优点和缺点
2014/11/21 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
10的分与合教学反思
2014/04/30 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
客房部经理岗位职责
2015/02/02 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL