当前位置 博文首页 > 使用python在校内发人人网状态(人人网看状态)

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

    作者:admin 时间:2021-06-27 18:33

    复制代码 代码如下:

    #_*_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)

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

    js
    下一篇:没有了