python 模拟登陆校内 cookielib urllib2
2010-08-04 17:25
337 查看
进来学习了一下python的,感觉还是很不错的,到处找东西去练习,在老王python那里也能够有一些基础的练习。很适合我。模拟登陆
1 #encoding=gbk
2
3 import sys
4 import re
5 import cookielib
6 import urllib2
7 import urllib
8
9
10
11 class Renren(object):
12
13 def __init__(self):
14 self.name=self.pwd=self.domain=self.origURL=self.operate=""
15 self.cj=cookielib.LWPCookieJar()
16 try:
17 self.cj.revert('renren.cookie')
18 except Exception,e:
19 print e
20 self.opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
21 urllib2.install_opener(self.opener)
22
23 def setinfo(self,username,pwd,domain,origURL):
24 """设置登陆参数"""
25 self.name=username
26 self.pwd=pwd
27 self.domain=domain
28 self.origURL=origURL
29
30 def login(self):
31 """登陆人人网"""
32 params={'domain':self.domain,'origURL':self.origURL,'email':self.name,
33 'password':self.pwd}
34 print 'login......'
35 req=urllib2.Request(
36 'http://www.renren.com/PLogin.do',
37 urllib.urlencode(params))
38 self.operate = self.opener.open(req)
39 if self.operate.geturl() == 'http://www.renren.com/Home.do':
40 print 'logged on successfully!'
41 self.cj.save("renren.cookie")
42 self.__viewinfo()
43 else:
44 print 'login error.....'
45
46 def __viewinfo(self):
47 """查看个人的状态"""
48 print "正在获取信息......"
49 self.__caiinfo()
50
51 def __caiinfo(self):
52 h3patten=re.compile('^<meta.*/>$')#正则匹配,这里假设匹配元信息
53 incontent=self.operate.readlines()#读取整个网页内容
54 #print incontent
55 for i in incontent:
56 content=h3patten.findall(i)
57 if len(content)!=0:
58 for ok in content:
59 print ok.decode("utf-8").encode("gbk") #进行编码的转换,否则显示是十六进制的数
60 print "已完成!"
61 if __name__=='__main__':
62 ren=Renren()
63 ren.setinfo("xxxx@gmail.com",'xxxx',
64 "renren.com","http://www.renren.com/SysHome.do")
65 ren.login()
66
67
程序自动在当前目录下生成renren.cookie,我这里显示是:
#LWP-Cookies-2.0
Set-Cookie3: depovince=GX; path="/"; domain=".renren.com"; path_spec; domain_dot; expires="2010-08-07 04:01:17Z"; version=0
在这里比较麻烦的是在59行处,花了我好久的时间,也算是python的老问题了,也就是编码的问题,python默认使用utf-8进行编码的处理,当我们要处理中文的时候,往往会变成了乱码,decode是解码,encode是编码,经过两步的处理,才能够很好的显示中文。在这里做一个记录。
作者:xiaoxia
出处:http://cnblogs.com/xiaoxia
我的淘宝:http://shop62115161.taobao.com/
本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。
1 #encoding=gbk
2
3 import sys
4 import re
5 import cookielib
6 import urllib2
7 import urllib
8
9
10
11 class Renren(object):
12
13 def __init__(self):
14 self.name=self.pwd=self.domain=self.origURL=self.operate=""
15 self.cj=cookielib.LWPCookieJar()
16 try:
17 self.cj.revert('renren.cookie')
18 except Exception,e:
19 print e
20 self.opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
21 urllib2.install_opener(self.opener)
22
23 def setinfo(self,username,pwd,domain,origURL):
24 """设置登陆参数"""
25 self.name=username
26 self.pwd=pwd
27 self.domain=domain
28 self.origURL=origURL
29
30 def login(self):
31 """登陆人人网"""
32 params={'domain':self.domain,'origURL':self.origURL,'email':self.name,
33 'password':self.pwd}
34 print 'login......'
35 req=urllib2.Request(
36 'http://www.renren.com/PLogin.do',
37 urllib.urlencode(params))
38 self.operate = self.opener.open(req)
39 if self.operate.geturl() == 'http://www.renren.com/Home.do':
40 print 'logged on successfully!'
41 self.cj.save("renren.cookie")
42 self.__viewinfo()
43 else:
44 print 'login error.....'
45
46 def __viewinfo(self):
47 """查看个人的状态"""
48 print "正在获取信息......"
49 self.__caiinfo()
50
51 def __caiinfo(self):
52 h3patten=re.compile('^<meta.*/>$')#正则匹配,这里假设匹配元信息
53 incontent=self.operate.readlines()#读取整个网页内容
54 #print incontent
55 for i in incontent:
56 content=h3patten.findall(i)
57 if len(content)!=0:
58 for ok in content:
59 print ok.decode("utf-8").encode("gbk") #进行编码的转换,否则显示是十六进制的数
60 print "已完成!"
61 if __name__=='__main__':
62 ren=Renren()
63 ren.setinfo("xxxx@gmail.com",'xxxx',
64 "renren.com","http://www.renren.com/SysHome.do")
65 ren.login()
66
67
程序自动在当前目录下生成renren.cookie,我这里显示是:
#LWP-Cookies-2.0
Set-Cookie3: depovince=GX; path="/"; domain=".renren.com"; path_spec; domain_dot; expires="2010-08-07 04:01:17Z"; version=0
在这里比较麻烦的是在59行处,花了我好久的时间,也算是python的老问题了,也就是编码的问题,python默认使用utf-8进行编码的处理,当我们要处理中文的时候,往往会变成了乱码,decode是解码,encode是编码,经过两步的处理,才能够很好的显示中文。在这里做一个记录。
作者:xiaoxia
出处:http://cnblogs.com/xiaoxia
我的淘宝:http://shop62115161.taobao.com/
本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。
相关文章推荐
- python模拟网站登陆
- python 实现清水河畔的模拟登陆
- Python3网络爬虫(三):Python3使用Cookie-模拟登陆获取妹子联系方式
- python模拟登陆之下载
- python运用decorate装饰器模拟网页登陆(含代码)
- python模拟登陆后用户访问网站
- python模拟登陆详解
- python网络爬虫入门(二)———模拟登陆知乎
- Python模拟登陆5:实现图书馆预约功能
- Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
- python3.3教程之模拟百度登陆的代码
- python 模拟登陆人人网登陆 2016-12-11
- python 模拟知乎登陆
- 【Python】【验证码识别】python 模拟登陆时,验证码自动识别问题
- Python爬虫----爬虫入门(4)---urllib2 模拟登陆
- python模拟登陆
- Python模拟登陆新浪微博
- python解决模拟登陆
- 如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站
- python模拟登陆163邮箱并获取通讯录