欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

python实现人人网留言获取与一键删除

发布时间:2023/12/20 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python实现人人网留言获取与一键删除 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

最近有点着迷Python,学习基本语法之后,首先从爬虫开始,看了《使用python登录人人网并发表状态》一文后,很感兴趣,然后又曾经苦于人人网聊天记录删除的繁琐,于是决定写一个聊天记录一键删除的小脚本,好啦,废话不多说:

#encoding:utf-8 import urllib2, urllib, cookielib, re, stringclass spider():def __init__(self, email, password):self.email = emailself.password = passwordself.domain = 'renren.com'try:cookie = cookielib.CookieJar()cookieProc = urllib2.HTTPCookieProcessor(cookie)except:raiseelse:opener = urllib2.build_opener(cookieProc)urllib2.install_opener(opener)def login(self):print 'login in...'url = 'http://www.renren.com/PLogin.do'postdata = {'email':self.email,'password':self.password,'domain':self.domain}req = urllib2.Request(url, urllib.urlencode(postdata))self.file = urllib2.urlopen(req).read()reInfo = re.compile(r"get_check:'(.*?)',get_check_x:'(.*?)'.*?'id':'(.*?)'", re.DOTALL)info = reInfo.findall(self.file)self.id = info[0][2]self.tok = info[0][0]self.rtk = info[0][1]print 'login in successfully'def publish(self, content): #发表状态url1 = 'http://shell.renren.com/' + self.id + '/status'postdata = {'content' : content,'hostid' : self.id,'requestToken': self.tok,'_rtk' : self.rtk,'channel' : 'renren'}req1 = urllib2.Request(url1, urllib.urlencode(postdata))url_f=urllib2.urlopen(req1)self.file1 = url_f.read()return url_f

上面登陆部分代码与参考文章一样,感谢前辈,下面开始分析人人网的聊天记录,通过Firebug抓包分析可以发现,人人网留言http://gossip.renren.com中,因此楼主准备从该网页找出留言的内容及留言的id,但是后来发现每次读出的都是第一页的聊天记录,该网页的<li>模块中会调用js脚本,切换内容,楼主不知道怎么搞定,有待继续研究。。。。于是楼主取巧了,每次删光第一页,刷新页面,继续删除第一页,只到删除所有留言。

删除留言的模拟过程通过抓包就可以发现在http://gossip.renren.com/delgossip.do上,向链接发送一个如下数据即可:

postdata={"id":comment_id,"owner":self.id,"age":"recent","requestToken":self.tok,"_rtk":self.rtk}


 

其他部分代码如下:

def getgossiprecent(self): #获得最近留言url="http://gossip.renren.com/#navBar"temp_f=urllib2.urlopen(url)temp_file=temp_f.read()#获取留言总数temp_rules=re.compile(r'''.input id=.gossipCount. type=.hidden. name=.. value=.(\d+)''')self.gossipCount=temp_rules.findall(temp_file)[0]#获取留言temp_rules=re.compile(r'''<span style="color:#000000"><span style="color:#000000">(.+)</span></span>''')result=temp_rules.findall(temp_file)#获取留言idtemp_rules=re.compile(r"delComment\D+(\d+)\D+(\d+)\D+(\d+)..return")self.gossip=temp_rules.findall(temp_file)self.gossip_id=[]self.gossip_guest=[]for para in self.gossip:self.gossip_id.append(para[0])self.gossip_guest.append(para[2])def delgossip(self,comment_id): #删除留言url="http://gossip.renren.com/delgossip.do"postdata={"id":comment_id,"owner":self.id,"age":"recent","requestToken":self.tok,"_rtk":self.rtk}urllib2.urlopen(url,urllib.urlencode(postdata))def delall(self):self.getgossiprecent()while string.atoi(self.gossipCount)>0 : for temp_id in self.gossip_id:self.delgossip(temp_id)self.getgossiprecent()


 

写完类对象就一切OK啦

 

总结:

第一次写爬虫程序,成就感满满的,人生苦短,请用Python,哈哈

如何模拟调用脚本,没搞定,另外楼主正则表达式没怎么看,代码中正则表达那部分槽点满满的。

另外楼主为了测试,把自己人人网聊天记录都删了。。。

 

打包程序下载地址,有需要的,传送门:http://pan.baidu.com/s/1ntLT2zf

转载请注明,谢谢

总结

以上是生活随笔为你收集整理的python实现人人网留言获取与一键删除的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。