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

#encoding:utf-8
import urllib2, urllib, cookielib, re, string
class spider():
def __init__(self, email, password):
self.email = email
self.password = password
self.domain = 'renren.com'
try:
cookie = cookielib.CookieJar()
cookieProc = urllib2.HTTPCookieProcessor(cookie)
except:
raise
else:
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)
#获取留言id
temp_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实现人人网留言获取与一键删除相关推荐

  1. python爬取网站时,一键获取headers、url等信息(真的是让我爬取网站时,省了不少力气,作为小秘密分享给大家喽)

    python爬取网站时,一键获取headers.url等信息 (真的是让我爬取网站时,省了不少力气,作为小秘密分享给大家喽) 作为Python的使用者,我今天就和大家来分享分享我学习python的经验 ...

  2. android 仿QQ,微信群组里的@功能,支持@多人,并能一键删除,能获取上传对应的id(修改版)

    首先注明该文章是借签别人的博客,原文博文地址点击打开链接 android 仿QQ,微信群组里的@功能,支持@多人,并能一键删除,能获取上传对应的id 这个需求来源:本人做集成环信聊天时,项目需要@功能 ...

  3. Python 爬取留言板留言(二):多线程版+selenium模拟

    文章目录 一.项目概述 二.项目实施 1.导入所需要的库 2.全局变量和参数配置 3.产生随机时间和用户代理 4.获取领导的fid 5.获取领导所有留言链接 6.获取留言详情 7.获取并保存领导所有留 ...

  4. Python 爬取留言板留言(三):多进程版+selenium模拟

    文章目录 一.项目概述 二.项目实施 1.导入所需要的库 2.全局变量和参数配置 3.产生随机时间和用户代理 4.获取领导的fid 5.获取领导所有留言链接 6.获取留言详情 7.获取并保存领导所有留 ...

  5. python用WMI等获取及修改windows系统信息

    通过查找相关资料,总结了一下python用WMI等获取windows系统信息以及修改系统的相关配置,代码如下(附件中有本代码附件): #-*- coding:utf-8 -*- import time ...

  6. 微信公众号图片素材一键删除小工具

    微信公众号图片素材上限100000,看似很多,但随着每天发文累计的图片素材会越来越多,一不小心就到达上限,便无法继续发文,这个时候就要承受老板的狂风怒火. 微信公众号后台带有素材图片批量删除功能,操作 ...

  7. 用Python制作可视化GUI界面,一键实现证件照背景颜色的替换

    今天,我们来分享一下如何通过Python的十来行代码来替换证件照的背景颜色,那么在最后,小编也会将上述的流程制作成一个GUI界面来方便大家使用.关于界面的大致模样其实和先前的相差不大,大家应该都看过上 ...

  8. 微商成功神器,python程序员教你,一键分析微信好友近期所有信息

    其他精彩内容:https://blog.csdn.net/weixin_45400881/article/details/95754294 几千个好友,怎么统计 相信做微商的微信好友都会很多,多到很多 ...

  9. python开发程序知道微信好友是否已读信息吗_微商成功神器,python程序员教你,一键分析微信好友近期所有信息...

    好友太多怎么保活 相信做微商的微信好友都会很多,多到很多都成了"僵尸"好友,但是想要成为一个成功的微商,要有两点: 1.好友多,基数决定高度 2."活的"好友多 ...

最新文章

  1. OVS 各功能调用过程(三十一)
  2. IIS配置网站定时任务必设参数图文教程
  3. 攻防世界———MISC 高手区题解
  4. Bugku杂项(一)
  5. [BUUCTF-pwn]——[ZJCTF 2019]EasyHeap
  6. React入门-9.redux你好
  7. uri=/struts-tags 出错
  8. python字符串字面量有哪四种定义方式_python中字符串连接的四种方式
  9. 每天一个linux命令(47):iostat命令
  10. 阿里蚂蚁金服中间件6轮面试!实拍题目和6点血泪总结!
  11. 机器学习 - 概念学习
  12. Stata:中介效应理论及sgmediation命令做sobel检验
  13. 六、流行框架介绍(SpringBoot框架详解(含底层原理介绍,适用于springBoot1.x和springBoot2.x,属于通用版本))
  14. 英特尔nuc做网站服务器,难以想象 英特尔把至强处理器塞进了NUC
  15. 排列型枚举(座次问题)
  16. 关于SASE与安全市场的那些事
  17. 安卓游戏开发一(超级玛丽)
  18. JAVA学习记录day07
  19. 再记公式弱爆了!用ChatGPT处理Excel问题,效率狂升
  20. 3dsmax展UV,制作UV贴图,将物体的贴图放到一张图片上,贴图优化方式,UVW贴图制作全流程

热门文章

  1. 视频有黑边怎么办?如何裁剪视频画面的黑边?
  2. 乐视2017暑期实习生笔试题(二)
  3. 中专在学校里考的计算机四级证属于中级职业技能证书吗?
  4. Spring Boot系列之Thymeleaf模板布局
  5. SET NOCOUNT { ON | OFF }
  6. 如何实现业务+项目一体化管理?
  7. 大数据开发实战教程目录
  8. 微信公众号开发前端逻辑
  9. 压力测试、负载测试、渗透测试、容量测试、敏感度测试
  10. [教程]centos7.x 及centos8 硬盘安装法#免U盘#采坑记