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实现ipsec开权限实例
Nov 11 Python
Python程序中的观察者模式结构编写示例
May 27 Python
让Python更加充分的使用Sqlite3
Dec 11 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
python 两个数据库postgresql对比
Oct 21 Python
opencv python在视屏上截图功能的实现
Mar 05 Python
在keras下实现多个模型的融合方式
May 23 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 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中用foreach来操作数组的代码
2011/07/17 PHP
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
2017/03/10 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
React实现全选功能
2020/08/25 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
python编写简单爬虫资料汇总
2016/03/22 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
详解python解压压缩包的五种方法
2019/07/05 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
医科大学生毕业的自我评价分享
2013/11/12 职场文书
护理工作感言
2014/01/16 职场文书
给同学的道歉信
2014/01/16 职场文书
《白鹅》教学反思
2014/04/13 职场文书
网络营销策划方案
2014/06/04 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang