使用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线程池的实现实例
Nov 18 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
Apr 28 Python
python简单判断序列是否为空的方法
Jun 30 Python
详解Django框架中用context来解析模板的方法
Jul 20 Python
Python控制多进程与多线程并发数总结
Oct 26 Python
python django 增删改查操作 数据库Mysql
Jul 27 Python
分享一下如何编写高效且优雅的 Python 代码
Sep 07 Python
python实现log日志的示例代码
Apr 28 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
Python socket 套接字实现通信详解
Aug 27 Python
10个Python面试常问的问题(小结)
Nov 20 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 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的简单采集数据入库程序
2014/07/30 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
PHP _construct()函数讲解
2019/02/03 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
sina的lightbox效果。
2007/01/09 Javascript
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
Python缓存技术实现过程详解
2019/09/25 Python
CSS3实现简易版的刮刮乐效果
2016/09/27 HTML / CSS
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
普通话宣传标语
2014/06/26 职场文书
医院党员公开承诺书
2014/08/30 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
企业战略合作意向书
2015/05/08 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
旅游投诉信范文
2015/07/02 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL