首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

【转】一个学弟用python写的校内自动发状态的机器人,先转来,得空研究研究

2012-12-28 
【转】一个学弟用python写的校内自动发状态的机器人,先转来,有空研究研究原文地址:http://share.renren.com/

【转】一个学弟用python写的校内自动发状态的机器人,先转来,有空研究研究

原文地址:http://share.renren.com/share/GetShare.do?id=4175410964&owner=262195161&ref=minifeed&sfet=107&fin=1&ff_id=262195161

?

心血来潮写了个这么一个东西,就当是为py练练手了。最不习惯的地方就是冒号……

目前就是这样,核心代码其实就20多行,用于发状态

!!!不讲任何编码规范!!!不讲任何py习俗!!!不讲任何简单方法!!!不讲任何复杂测试!!!

-----------------poststatus.py-------------

?

# coding=utf-8

import urllib

import urllib2

import cookielib

import sys

xn={}

xn['email']='你懂的'

xn['password']='你也懂的'

cookie=cookielib.CookieJar()

opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))

urllib2.install_opener(opener)

zhanghao = urllib.urlencode(xn)

req=urllib2.Request('http://3g.renren.com/login.do?fx=0&autoLogin=true',zhanghao)

resp=urllib2.urlopen(req)

#print resp.read()

def zhuangtai(sss):

xn2={}

xn2['status']=sss

xn2['update']="发布"

zhuangtai=urllib.urlencode(xn2)

req2=urllib2.Request('http://3g.renren.com/status/wUpdateStatus.do',zhuangtai)

print sss

resp2=urllib2.urlopen(req2)


之所以用3g而不是www的原因前文已经讲了。


-------------renren.py----------------主程序--------------------

?

#!/usr/bin/python

# coding=utf-8

import poststatus

import time

import hourstatus

import thread

import getstatus

#poststatus.zhuangtai('test')

def hoursleep():

t=time.localtime()

#print t[4]

if t[4]==59:

h=t[3]

if h==23:

h=0

else:

h+=1

poststatus.zhuangtai('下面是机器人整点报时时间:'+hourstatus.s[t[3]])

time.sleep(60)

hoursleep()

def rtsleep():

getstatus.zhuanfa()

time.sleep(60)

rtsleep()



print '欢迎打开您的机器人,您可以随时输入命令。exit退出,post发任意状态'

thread.start_new_thread(hoursleep,())

thread.start_new_thread(rtsleep,())

print '自动报时模块已加载'

while 1==1:

stdin=raw_input('shell:')

if stdin=='exit':

exit()

if stdin=='post':

while stdin!='robot' and stdin!='man':

stdin=raw_input('谁在说话?(robot/man)')

if stdin=='robot':

stdin=raw_input('我想说什么?')

poststatus.zhuangtai(stdin)

else:

stdin=raw_input('您想说嘛?')

poststatus.zhuangtai('我主人说:'+stdin)

continue

直接运行就可以


-----------------------getstatus.py-----------------------------

?

# coding=utf-8

import urllib

import urllib2

import cookielib

import sys

import poststatus

import time

def zhuanfa():

xn={}

xn['email']='你懂的'

xn['password']='你也懂的'

cookie=cookielib.CookieJar()

opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))

urllib2.install_opener(opener)

zhanghao = urllib.urlencode(xn)

req=urllib2.Request('http://3g.renren.com/login.do?fx=0&autoLogin=true',zhanghao)

resp=urllib2.urlopen(req)

html=resp.read()

#print len(html)

index=html.find('转自')

while index>0:

html=html[index:]

index2=html.find('<p')

sss=html[:index2-1]

fw=open('zhuanfa.db','a')

fr=open('zhuanfa.db','r')

alllines=fr.readlines()

fr.close()

boo=1

for each in alllines:

if sss.find(each[len(each)/2:len(each)/3*2])>0:

boo=0

if boo>0:

poststatus.zhuangtai('自动转发:'+sss)

fw.write('\n'+sss+'\n')

else:

print '发现转发过的状态'

index=html.find('转自')


原理很简单,就是扫描一遍手机人人主页的第一页,只要是有“转自”就截取下来,跟存储的文件比对,如果没有转发过就转出去并存档。不存档的后果是显而易见的。


还有一个hourstatus.py,里面就是存了24个整点报时机器人要说的话,没别的

====================================

接下来的计划是写成真正的爬虫,能深入搜索什么的。可以建立一个好友的关系网什么的。那是以后的事情了。

热点排行