使用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标准日志模块logging的使用方法
Nov 01 Python
Python3实现连接SQLite数据库的方法
Aug 23 Python
使用C语言扩展Python程序的简单入门指引
Apr 14 Python
Python 40行代码实现人脸识别功能
Apr 02 Python
Python 对象中的数据类型
May 13 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
Oct 11 Python
Python包,__init__.py功能与用法分析
Jan 07 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
python实现录音功能(可随时停止录音)
Oct 26 Python
Python抓包并解析json爬虫的完整实例代码
Nov 03 Python
Python中with上下文管理协议的作用及用法
Mar 18 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 面向对象之成员方法详解
2013/05/04 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
用javascript实现画板的代码
2007/09/05 Javascript
浅谈Javascript事件模拟
2012/06/27 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python变量和数据类型详解
2017/02/15 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
Python库安装速度过慢解决方案
2020/07/14 Python
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
Android面试题及答案
2015/09/04 面试题
一月红领巾广播稿
2014/02/11 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
园林技术专业求职信
2014/07/28 职场文书
给学校的建议书400字
2015/09/14 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang