Board logo

标题: [原创代码] python3使用requests登录人人影视网站.py [打印本页]

作者: codegay    时间: 2016-5-11 09:39     标题: python3使用requests登录人人影视网站.py

本帖最后由 codegay 于 2016-6-11 04:24 编辑
  1. #以下是使用fiddler抓包得到完整的HTTP请求头:
  2. POST http://www.zimuzu.tv/User/Login/ajaxLogin HTTP/1.1
  3. Host: www.zimuzu.tv
  4. Connection: keep-alive
  5. Content-Length: 102
  6. Accept: application/json, text/javascript, */*; q=0.01
  7. Origin: http://www.zimuzu.tv
  8. X-Requested-With: XMLHttpRequest
  9. User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36
  10. Content-Type: application/x-www-form-urlencoded
  11. DNT: 1
  12. Referer: http://www.zimuzu.tv/user/login
  13. Accept-Encoding: gzip, deflate
  14. Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
  15. Cookie: PHPSESSID=st40f3vohv424dsfadf3atekimba0; 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
  16. account=你的用户名&password=你的密码&remember=1&url_back=http%3A%2F%2Fwww.zimuzu.tv%2Fuser%2Fsign
复制代码
以下是python代码
  1. """
  2. python3使用requests登录人人影视网站.py
  3. 2016年5月11日 07:33:59 codegay
  4. 参考资料requests文档:
  5. http://cn.python-requests.org/zh_CN/latest/
  6. 四种常见的 POST 提交数据方式
  7. https://imququ.com/post/four-ways-to-post-data-in-http.html
  8. """
  9. import re
  10. import requests
  11. #requests 安装命令:pip install requests
  12. loginurl='http://www.zimuzu.tv/User/Login/ajaxLogin'
  13. surl='http://www.zimuzu.tv/user/sign'
  14. httphead={
  15. 'Accept':'application/json, text/javascript, */*; q=0.01',
  16. 'Origin':'http://www.zimuzu.tv',
  17. 'X-Requested-With':'XMLHttpRequest',
  18. 'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36',
  19. 'Content-Type': 'application/x-www-form-urlencoded',
  20.           }
  21. data="account=用户名&password=密码&remember=1"
  22. session=requests.Session()
  23. login=session.post(loginurl,data=data,headers=httphead)
  24. print(login.cookies)#打印登录后取得到cookies对象
  25. print(login.json())
  26. getstat=session.get(surl).text.split("\n") #访问签到页面,显示最近三次登录时间
  27. [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已经帮我们处理了。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2