zoukankan      html  css  js  c++  java
  • 使用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('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) 

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

  • 相关阅读:
    博客园注册成功,博客开张啦!
    Android零基础开发专题三:Android SDK帮助文档使用方法
    Android平台介绍
    Android零基础开发专题五:Activity、BroadcastReceiver、Service、Content Provider
    Android零基础开发专题四:Android 项目文件结构
    Android零基础开发专题二:Hello Android,I am coming!
    与大家分享一下我的面试经历,也算对自己的一次总结。大家有什么心得,意见都可以畅所欲言。
    分布式安装sde、oracle后,其它机器如何通过arcsde连接oracle?
    【SQLSERVER】存儲過程的寫法格式規格
    利用SQLServer复制功能实现与Oracle数据库同步(转)
  • 原文地址:https://www.cnblogs.com/tianshifu/p/6361815.html
Copyright © 2011-2022 走看看