Python自学之2016.4.20

679 查看

打印变量是个很好的理解程序,调试程序的方法
贴一段利用requests包绕过csrf模拟登陆的代码
获取网页真的有好多种方法,urllib,urllib2,requests,bs4,selenium都可以,我相信还有更多的方法可以获取,解析网页。

  • Talk is cheap, Show me the code.
    #-*- coding: utf-8 -*-
    import requests
    url_login = "http://www.heibanke.com/accounts/login"
    url_form = "http://www.heibanke.com/lesson/crawler_ex03/"
    def post_login(s,url,data):
      print data,1
      s.get(url)
      params = {'csrfmiddlewaretoken':s.cookies.get('csrftoken')}
      print params,2
      params.update(data)
      print params,3
      print data,4
      r = s.post(url,data=params)
      return r,s
    s = requests.Session()
    r,s = post_login(s,url_login,{'username':'test','password':'test123'})
    print 'login',r.status_code
    r = s.post(url_form)
    print r.text
    这样就通过提取cookies和提交隐藏表单,以及利用Session()这样一个会话对象来保持登陆,为后面的试密码做铺垫。

Paste_Image.png

test4.jpg