python实现人人自动回复、抢沙发功能


Posted in Python onJune 08, 2018

最近人人上看到有好友总是使用软件抢沙发,便决定用Python也写一个玩玩

一、状态回复表单POST

同样使用chrome开发者工具抓包

红色选择选中部分为必须提交的部分 

python实现人人自动回复、抢沙发功能

提交表单的内容

postdata = { 
    'c': content, #1  你要评论的内容 
    'owner': owner, #2 该状态的所有者ID 
    'source': source, #3 该状态的ID 
    't': 3, #4  这条不用修改 
    'requestToken': xxx, #5  上图选中部分 
    '_rtk': 'xxx', #6  上图选中部分 
  }

二、抢沙发思路

每个20s访问一下人人主页,使用BeautifulSoup抓取data-id(对应owner)、data-source(对应source)

模拟表单提交即可完成抢沙发

TARGET_ID    集合存放需要抢沙发的好友ID(data-id)

REPLY_ID      集合存放已经回复过的状态ID(data-source)

通过上述两个集合保证不重复评论,且只评论指定好友的状态

#coding=utf8 
import re 
import urllib 
import urllib2 
import time 
from bs4 import BeautifulSoup 
 
__author__ = 'SnOw' 
COOKIE = '你自己COOKIE' 
HEADERS = {'cookie': COOKIE, 
      'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36' 
} 
TARGET_ID = set(['5002986XX']) #存放需要抢沙发的好友ID 
REPLY_ID = set() 
 
def load_status(): 
  URL = 'http://www.renren.com/' 
  req = urllib2.Request(URL, headers=HEADERS) 
  page = '' 
  try: 
    page = urllib2.urlopen(req).read() 
  except: 
    print 'urlopen error' 
  soup = BeautifulSoup(page) 
  for i in soup.find_all('figure'): 
    # print i.get('data-id') 
    if i.get('data-id') in TARGET_ID: 
      owner_id = i.get('data-id') 
      source_id = i.get('data-source') 
      if source_id not in REPLY_ID: 
        auto_reply(owner_id, source_id) 
        print i.get('data-id') + ' ' + source_id 
      else: 
        print 'replyed this status' 
 
def auto_reply(owner, source): 
  url = 'http://status.renren.com/feedcommentreply.do?fin=0&ft=status&ff_id=' + str(owner) 
  content = '(shafa10) ' + time.strftime('于%H时%M分%S秒') + " ~" 
  postdata = { 
    'c': content, #1 
    'owner': owner, #2 
    'source': source, #3 
    't': 3, #4 
    'requestToken': -7683150XX, #5 自己修改 
    '_rtk': '9df56fXX', #6<span style="white-space:pre;">  </span>自己修改 
  } 
  req = urllib2.Request(url, urllib.urlencode(postdata), headers=HEADERS) 
  page = urllib2.urlopen(req).read() 
  REPLY_ID.add(source) 
 
 
while True: 
  load_status() 
  time.sleep(20) 
  print time.strftime('%H:%M:%S')

效果图

python实现人人自动回复、抢沙发功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python验证码识别
Jan 25 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
python3实现表白神器
Apr 09 Python
Python中函数的返回值示例浅析
Aug 28 Python
python动态视频下载器的实现方法
Sep 16 Python
Pycharm+Python+PyQt5使用详解
Sep 25 Python
基于python实现从尾到头打印链表
Nov 02 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
Idea安装python显示无SDK问题解决方案
Aug 12 Python
Python中requests库的用法详解
Jun 05 Python
利用Python写一个爬妹子的爬虫
Jun 08 #Python
python os用法总结
Jun 08 #Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 #Python
浅谈Pandas 排序之后索引的问题
Jun 07 #Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 #Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 #Python
浅谈Series和DataFrame中的sort_index方法
Jun 07 #Python
You might like
如何在PHP中使用Oracle数据库(3)
2006/10/09 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
php实现的CSS更新类实例
2014/09/22 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
在Linux下调试Python代码的各种方法
2015/04/17 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
介绍一下EJB的体系结构
2012/08/01 面试题
文艺晚会主持词
2014/03/24 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
收银员岗位职责
2015/02/03 职场文书
民主生活会主持词
2015/07/01 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle