使用python在校内发人人网状态(人人网看状态)


Posted in Python onFebruary 19, 2014
#_*_coding:utf_8_
from sgmllib import SGMLParser
import sys, urllib2, urllib, cookielib
import datetime, time
class spider(SGMLParser):
    def __init__(self, email, password):
        SGMLParser.__init__(self)
        self.email = email
        self.password = password
        self.domain = 'renren.com'
        try:
            cookie = cookielib.CookieJar()
            # a class to handle HTTP cookies
            cookieProc = urllib2.HTTPCookieProcessor(cookie)
        except:
            raise
        else:
            opener = urllib2.build_opener(cookieProc)
            urllib2.install_opener(opener)       
    def login(self):
        print '开始登录'
        url = 'http://www.renren.com/PLogin.do'
        #url = 'http://www.renren.com/SysHome.do'
        postdata = {
                    'email': self.email,
                    'password': self.password,
                    'domain': self.domain  
                   }
        # 一般情况下引入urllib2的地方都需要引入urllib,因为需要urlencode()
        req = urllib2.Request(
                              url,
                              urllib.urlencode(postdata)            
                             )
        self.file = urllib2.urlopen(req).read()
        # urlopen后 成功后进入首页 因此self.file的内容就是首页的html文件的内容
        # print self.file
        idPos = self.file.index("'id':'")
        self.id = self.file[idPos+6:idPos+15]
        tokPos = self.file.index("get_check:'")
        self.tok = self.file[tokPos+11:tokPos+21]
        rtkPos = self.file.index("get_check_x:'")
        self.rtk = self.file[rtkPos+13:rtkPos+21]
    def publish(self, content):
        url1 = 'http://shell.renren.com/' +self.id+ '/status'
        print 'self.id = ' , self.id
        postdata = {
                  'content': content,
                  'hostid': self.id,
                  'requestToken': self.tok,
                  '_rtk': self.rtk,
                  'channel': 'renren',
                  }
        req1 = urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)            
                            )
        self.file1 = urllib2.urlopen(req1).read()
        print datetime.datetime.now()
        print '刚才账号 %s发了一条状态' % self.email  
        print '内容为: %s' % postdata.get('content', '')
renrenspider = spider('qich555550@163.com', 'qishibo123')
renrenspider.login()
#content = raw_input('请输入状态的内容:')
contents =["祝","各","位","同","学","盆","友","在","新","的","一","年","里","身","体","健","康","万","事","如","意","不小心刷屏了,望大家谅解"]
#renrenspider.publish(content)
#content = "新年快乐"
#renrenspider.publish(content)
#renrenspider.publish(content.decode('gb2312').encode('utf-8'))
for content in contents:
    renrenspider.publish(content)

用这个程序就可以发状态刷屏了,只不过校内的状态不支持具体时间,看不出效果来,不然每隔两秒一条状态应该会让人惊讶的 

Python 相关文章推荐
Python os模块介绍
Nov 30 Python
在Heroku云平台上部署Python的Django框架的教程
Apr 20 Python
在Django同1个页面中的多表单处理详解
Jan 25 Python
python使用matplotlib绘制柱状图教程
Feb 08 Python
Python实现运行其他程序的四种方式实例分析
Aug 17 Python
Python面向对象类继承和组合实例分析
May 28 Python
Python实现的json文件读取及中文乱码显示问题解决方法
Aug 06 Python
由面试题加深对Django的认识理解
Jul 19 Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
Python接口测试文件上传实例解析
May 22 Python
Pycharm在指定目录下生成文件和删除文件的实现
Dec 28 Python
下载给定网页上图片的方法
Feb 18 #Python
使用python将mdb数据库文件导入postgresql数据库示例
Feb 17 #Python
python动态加载变量示例分享
Feb 17 #Python
python文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 #Python
python实现bitmap数据结构详解
Feb 17 #Python
python实现ftp客户端示例分享
Feb 17 #Python
用smtplib和email封装python发送邮件模块类分享
Feb 17 #Python
You might like
PHP学习资料汇总与网址
2007/03/16 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
requireJS使用指南
2016/04/27 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
node.js基础知识小结
2018/02/26 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
python读取Android permission文件
2013/11/01 Python
介绍Python中的文档测试模块
2015/04/28 Python
Python实现注册登录系统
2017/08/08 Python
通过实例解析Python return运行原理
2020/03/04 Python
通过自学python能找到工作吗
2020/06/21 Python
Python编写单元测试代码实例
2020/09/10 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
pandas按条件筛选数据的实现
2021/02/20 Python
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
演讲主持词
2014/03/18 职场文书
《祁黄羊》教学反思
2014/04/22 职场文书
科学发展观活动总结
2014/08/28 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
解析MySQL binlog
2021/06/11 MySQL