码迷,mamicode.com
首页 > 编程语言 > 详细

python模拟浏览器登陆

时间:2015-03-21 01:03:46      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

 

#! /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模拟浏览器登陆

标签:

原文地址:http://www.cnblogs.com/flowjacky/p/4355018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!