您的位置:首页 > 编程语言 > Python开发

【py登陆】python模拟登录

2014-01-08 20:17 337 查看

用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: