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抓取最新博客内容并生成Rss
May 17 Python
python字符类型的一些方法小结
May 16 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
Python实现将一个正整数分解质因数的方法分析
Dec 14 Python
解决python3 网络请求路径包含中文的问题
May 10 Python
python3实现多线程聊天室
Dec 12 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
解决Python3 抓取微信账单信息问题
Jul 19 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
让你的Python代码实现类型提示功能
Nov 19 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
Apr 13 Python
Python OpenCV实现图形检测示例详解
Apr 08 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第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
jQuery实现每隔几条元素增加1条线的方法
2016/06/27 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
小程序实现分类页
2019/07/12 Javascript
详解Vuex下Store的模块化拆分实践
2019/07/31 Javascript
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
浅析使用Python搭建http服务器
2019/10/27 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
迟到检讨书大全
2014/01/25 职场文书
老同学聚会感言
2014/02/23 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
安全教育观后感
2015/06/17 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android