使用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 生成器协程运算实例
Sep 04 Python
在CentOS6上安装Python2.7的解决方法
Jan 09 Python
python实现多线程行情抓取工具的方法
Feb 28 Python
python中字符串数组逆序排列方法总结
Jun 23 Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 Python
python Django框架实现web端分页呈现数据
Oct 31 Python
基于python监控程序是否关闭
Jan 14 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
如何使用Python自动生成报表并以邮件发送
Oct 15 Python
运行python提示no module named sklearn的解决方法
Nov 29 Python
教你如何用Python实现人脸识别(含源代码)
Jun 23 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
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
特殊日期提示功能的实现方法
2016/06/16 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
python定时器使用示例分享
2014/02/16 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
详解python 中in 的 用法
2019/12/12 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
pycharm导入源码的具体步骤
2020/08/04 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
学校大课间活动方案
2014/01/30 职场文书
财产公证书样本
2014/04/04 职场文书
公司开业致辞
2015/07/29 职场文书
物业保洁员管理制度
2015/08/05 职场文书
员工工作心得体会
2019/05/07 职场文书
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL