zoukankan      html  css  js  c++  java
  • python3使用requests登录人人影视网站

    python3使用requests登录人人影视网站
    继续练习使用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("
    ") #访问签到页面,显示最近三次登录时间
    [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已经帮我们处理了。

  • 相关阅读:
    iNeuOS工业互联网系统,一键部署,5分钟内开箱即用
    演讲的要义
    在MyBatis中实现动态表名
    Pandora Boot和Spring Boot
    java对象克隆以及深拷贝和浅拷贝
    超级快的端口扫描工具blackwater
    webgl智慧楼宇发光系列之线性采样下高斯模糊
    canvas可视化效果之内阴影效果
    图表绘制之RepeatNode的妙用
    【ECUG】十四年如一日,有这样一群初心不改的技术人
  • 原文地址:https://www.cnblogs.com/gayhub/p/5480778.html
Copyright © 2011-2022 走看看