• 用Python模拟登录网站

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

    前面简单提到了 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. [搜索引擎优化] 百度搜索引擎优化指南 3 个条目
  2. [软件工程与项目管理] 开始使用Git 3 个条目
  3. [数据结构] 散列表(哈希表) 13 个条目
  4. [移动开发] Android里的ContentValues 2 个条目
  5. [移动开发] 从代码角度去认识 Thread 9 个条目
  6. [智力开发与知识管理] 整体性学习步骤 9 个条目
  7. [移动开发] 从代码角度去认识 Handler 4 个条目
  8. [PHP程序设计] 编程范式初探 3 个条目
  9. [Python程序设计] Django Web环境配置 2 个条目
  10. [PHP程序设计] PHP数组探索 4 个条目
  11. [智力开发与知识管理] 超越整体性学习 5 个条目
  12. [PHP程序设计] httpd.conf设置相关 3 个条目
窗口 -- [博客]