• python模拟浏览器保存Cookie进行会话


    #! /usr/bin/env python
    # -*-coding:utf-8 -*-
    
    import urllib
    import urllib2
    import cookielib
    
    class NetRobot:
        def __init__(self, baseurl):
            self.cj = cookielib.CookieJar()
            self.baseurl = baseurl
            self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
            urllib2.install_opener(self.opener)
        
        def getData(self,username,password,**data):
            print 'origin data:',data
            self.opener.open(self.baseurl)
            try:
                data['csrfmiddlewaretoken'] = [x.value for x in self.cj if "csrftoken"==x.name][0] #用于Django开启csrf中间件时
            except:
                pass
            data['username']=username
            data['password']=password
            return data
    
        def login(self,follow_up_url, username,password,**others):
            print
            print '-'*25,'login...','-'*25
            login_url = self.baseurl + follow_up_url
            data = self.getData(username, password, **others)
            post_data = urllib.urlencode(data)
            print post_data
            header = {'User-Agent':'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)'}  #假装是浏览器
            request = urllib2.Request(login_url, post_data, header)        #构造post请求
            try:
                self.opener.open(request)                        #提交请求
                print '^'*25,'login success','^'*25
            except:
                print '!'*25,'login failure','!'*25
            print
    
        def visit(self, follow_up_url):
            request = urllib2.Request(self.baseurl + follow_up_url)
            content = self.opener.open(request)
            print content.read()
    
    if __name__ == '__main__':
        nr = NetRobot('http://192.168.1.100')          #指定网站根路径
        nr.login('/login/', 'user', 'password', hidRem='')  #此处假设需要额外的的hiRem参数
        nr.visit('/api/folders/15/?format=json')
  • 相关阅读:
    Python 必备神器
    python 常用库
    Sublime Text3 配置 Python2 Python3
    Python JSON
    Sublime Text3 3143 注册码
    EFCode First 导航属性
    EF Code First:实体映射,数据迁移,重构(1)
    Entity Framework 复杂类型
    EF 7 Code First
    EF Code First 导航属性 与外键
  • 原文地址:https://www.cnblogs.com/flowjacky/p/4355018.html
Copyright © 2020-2023  润新知