【py登陆】python模拟登录

用Python模拟登录网站

 

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

01 #  -*- coding: utf-8 -*-
02 # !/usr/bin/python
03  
04 import urllib2
05 import urllib
06 import cookielib
07 import re
08  
09 auth_url = 'http://www.nowamagic.net/'
10 home_url = 'http://www.nowamagic.net/';
11 # 登陆用户名和密码
12 data={
13     "username":"nowamagic",
14     "password":"pass"
15 }
16 # urllib进行编码
17 post_data=urllib.urlencode(data)
18 # 发送头信息
19 headers ={
20     "Host":"www.nowamagic.net",
21     "Referer": "http://www.nowamagic.net"
22 }
23 # 初始化一个CookieJar来处理Cookie
24 cookieJar=cookielib.CookieJar()
25 # 实例化一个全局opener
26 opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
27 # 获取cookie
28 req=urllib2.Request(auth_url,post_data,headers)
29 result = opener.open(req)
30 # 访问主页 自动带着cookie信息
31 result = opener.open(home_url)
32 # 显示结果
33 print result.read()

再附带几个示例程序:

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

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

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

01 import cookielib, urllib2
02  
03 req = urllib2.Request(url, postdata, header)
04 req.add_header('User-Agent', \
05     'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
06  
07 ckjar = cookielib.MozillaCookieJar(filename)
08 ckproc = urllib2.HTTPCookieProcessor(ckjar)
09  
10 opener = urllib2.build_opener(ckproc)
11  
12 f = opener.open(req)
13 htm = f.read()
14 f.close()
15  
16 ckjar.save(ignore_discard=True, ignore_expires=True)

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

01 import cookielib, urllib2
02  
03 cookiejar = cookielib.CookieJar()
04 urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
05 values = {'redirect':", 'email':'abc@abc.com',
06           'password':'password', 'rememberme':", 'submit':'OK, Let Me In!'}
07 data = urllib.urlencode(values)
08  
09 request = urllib2.Request(url, data)
10 url = urlOpener.open(request)
11 print url.info()
12 page = url.read()
13  
14 request = urllib2.Request(url)
15 url = urlOpener.open(request)
16 page = url.read()
17 print page
posted @ 2014-01-08 20:17  怒杀神  阅读(485)  评论(0编辑  收藏  举报