• 用Python模拟登录网站

    cookielib的使用
    服务器君一共花费 8.869 ms 进行了 2 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    前面简单提到了 Python 模拟登录的程序,但是没写清楚,这里再补上一个带注释的 Python 模拟登录的示例程序。简单说一下流程:先用cookielib获取cookie,再用获取到的cookie,进入需要登录的网站。

    #  -*- coding: utf-8 -*-
    # !/usr/bin/python
    
    import urllib2
    import urllib
    import cookielib
    import re
    
    auth_url = 'http://www.nowamagic.net/'
    home_url = 'http://www.nowamagic.net/';
    # 登陆用户名和密码
    data={
    	"username":"nowamagic",
    	"password":"pass"
    }
    # urllib进行编码
    post_data=urllib.urlencode(data)
    # 发送头信息
    headers ={
    	"Host":"www.nowamagic.net", 
    	"Referer": "http://www.nowamagic.net"
    }
    # 初始化一个CookieJar来处理Cookie
    cookieJar=cookielib.CookieJar()
    # 实例化一个全局opener
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
    # 获取cookie
    req=urllib2.Request(auth_url,post_data,headers)
    result = opener.open(req)
    # 访问主页 自动带着cookie信息
    result = opener.open(home_url)
    # 显示结果
    print result.read()
    

    再附带几个示例程序:

    1. 使用已有的cookie访问网站

    import cookielib, urllib2
    
    ckjar = cookielib.MozillaCookieJar(os.path.join('C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default', 'cookies.txt'))
    
    req = urllib2.Request(url, postdata, header)
    
    req.add_header('User-Agent', \ 
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
    
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) )
    
    f = opener.open(req) 
    htm = f.read() 
    f.close()
    

    2. 访问网站获得cookie,并把获得的cookie保存在cookie文件中

    import cookielib, urllib2
    
    req = urllib2.Request(url, postdata, header) 
    req.add_header('User-Agent', \ 
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
    
    ckjar = cookielib.MozillaCookieJar(filename) 
    ckproc = urllib2.HTTPCookieProcessor(ckjar)
    
    opener = urllib2.build_opener(ckproc)
    
    f = opener.open(req) 
    htm = f.read() 
    f.close()
    
    ckjar.save(ignore_discard=True, ignore_expires=True)
    

    3. 使用指定的参数生成cookie,并用这个cookie访问网站

    import cookielib, urllib2
    
    cookiejar = cookielib.CookieJar()
    urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
    values = {'redirect':", 'email':'abc@abc.com', 
              'password':'password', 'rememberme':", 'submit':'OK, Let Me In!'}
    data = urllib.urlencode(values)
    
    request = urllib2.Request(url, data)
    url = urlOpener.open(request)
    print url.info()
    page = url.read()
    
    request = urllib2.Request(url)
    url = urlOpener.open(request)
    page = url.read()
    print page
    
更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [Python程序设计] 写几个简单的Tornado程序吧 5 个条目
  2. [JavaScript程序设计] 关于HTTP Keep-Alive 6 个条目
  3. [Python程序设计] Django Web环境配置 2 个条目
  4. [PHP程序设计] PHP数组的遍历 7 个条目
  5. [Linux操作系统] CentOS上使用EPEL Repository 2 个条目
  6. [Python程序设计] Django模板系统 11 个条目
  7. [Python程序设计] Tornado源码解析 23 个条目
  8. [移动开发] 刷机与root相关 2 个条目
  9. [移动开发] 使用support-v7 ActionBar前的那些坑 3 个条目
  10. [Python程序设计] Django 入门知识浅介 10 个条目
  11. [PHP程序设计] Nginx基本操作释疑 7 个条目
  12. [计算机算法] TAOCP与算法 12 个条目
窗口 -- [八点]