使用python在校内发人人网状态(人人网看状态)
admin
2023-07-31 02:00:45
0

复制代码 代码如下:
#_*_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)

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

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...