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

#_*_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://www.bsck.org/‘ +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(‘[email protected]‘, ‘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)

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

时间: 2024-10-26 00:36:22

使用python在校内发人人网状态(人人网看状态)_python的相关文章

TCP协议 状态解析和状态统计

一.三次握手和四次挥手 1.建立连接(三次握手) (1)服务器会处于listen状态,客户端发送一个带SYN标志的TCP报文到服务器. (2)服务器端回应客户端的请求,这是三次握手中的第2个报文,这个报文同时带SYN标志和ACK标志. 因此它表示对刚才客户端SYN报文的回应:同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯. (3)客户必须再次回应服务段一个ACK报文,这个时候两端就处于已经建立连接 2.连接终止(四次握手) 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭.这

聊聊系统设计:有状态、无状态

网站登录校验,很普通的一个功能 对于这个功能我们要如何实现? 先分析一下登录校验是个啥意思 举个栗子,比如我们在登陆页输入用户名密码,登录了社交网站 这时候想去看自己的新鲜事,却告诉我请先输入用户名密码进行验证.. 这时候想去吐槽下这个2B体验,发个新鲜事,点完发布按钮时,又弹出框说请输入用户名密码进行验证...这时候脑子里上千个草泥马奔腾而过 这样的产品可以说拜拜了 对我们的用户来说,登录操作其实完成一次就够了,后续的操作服务应该能够自动识别出是这个合法用户 因此,我们就需要对用户的状态进行记

Java深度历险(二) EJB Session Bean有状态和无状态的区别与联系

刚开始对两种sessionbean存在误解,认为有状态是实例一直存在,保存每次调用后的状态,并对下一次调用起作用,而认为无状态是每次调用实例化一次,不保留用户信息.仔细分析并用实践检验后,会发现,事实恰好相反:有状态和无状态会话bean的本质区别是它们的生命期. 首先解释一个下面要用到的概念--用户:sessionbean 的用户实际上就是直接调用ejb的类的实例,甚至是这个实例的某个方法.同一个类的不同实例对于session bean来说是不同的用户. 实例解析 有状态的StatefulEjb

从状态模式看“大神”和“菜鸟”的区别

<大话设计模式>中讲状态模式这一节名字叫做"无尽加班何时休-状态模式".菜鸟由于编程经验不足,解决问题的能力不够而不得不牺牲时间去不断的写代码结果还是反复出错.而大神每次都能深入到问题的根源运用自己的思想去写代码,每个问题都完美的解决. 加班的菜鸟一天各个时间段状态都不一样,从开始的精神百倍到越来越疲惫.自己写出的代码不断带来问题. 代码是程序员思维智慧的结晶,菜鸟"程序员没有将自己的思维融入代码写出来的是这样的: class Program { static v

AIR中用户离开状态和返回状态

通过idleThreshold=10;(秒) USER_IDLE.USER_PRESENT事件 可以对用户离开状态和返回状态进行处理. 例如用户5分钟没有鼠标键盘动作,进入离开状态, 有了鼠标键盘动作就回到在线状态. NativeApplication.nativeApplication.idleThreshold = idleTime; NativeApplication.nativeApplication.addEventListener(Event.USER_IDLE,onIdle); N

http协议无状态中的 &quot;状态&quot; 到底指的是什么?!

引子: 最近在好好了解http,发现对介绍http的第一句话[http协议是无状态的,无连接的]就无法理解:无状态的[状态]到底指的是什么?! 找了很多资料不仅没有发现有一针见血正面回答这个问题的,而且有些解释还充斥了各种错误,看着看着就觉得心里憋着一股浊气吐不出来 于是在看了很多资料之后,我一口吐出浊气,大声正面提出这个问题:http协议无状态中的[状态]到底指的是什么?! 然后开始不断探索解决这个问题... 最终很高兴的是我找到了让人满意的答案,先卖个关子,各位如果着急可以直接拉到最下查看

精通有状态vs无状态(Stateful vs Stateless)—Immutable模式之姐妹篇

我相信有不少人还不明白有状态和无状态(Stateful and Stateless)的概念,那么我们今天就来谈谈有状态和无状态,一方面不断总结提高自我,另一方面兼扫盲.这是Immutable不变模式的姐妹篇,大家可以参照着读. Immutable不变模式的分析blog: http://www.iteye.com/topic/959751 基本概念: 有状态就是有数据存储功能.有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的.在不同方法调用间不保留任何状

检测Insert、Capslock、NumLock、ScrollLock状态键的状态

unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, AppEvnts, ComCtrls; type  TForm1 = class(TForm)    StatusBar1: TStatusBar;    ApplicationEvents1: TApplicationEvents;    procedure FormRe

前端常见状态码 http状态码

HTTP状态码 编辑 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码.它由 RFC 2616 规范定义的,并得到RFC 2518.RFC 2817.RFC 2295.RFC 2774.RFC 4918等规范扩展. 中文名 HTTP状态码 外文名 HTTP Status Code 规范定义 RFC 2616 消息端 1字头,2字头,3字头 目录 1 消息(1字头) ? 100 Continue ? 101 Switching Protocols