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 相关文章推荐
使用实现pandas读取csv文件指定的前几行
Apr 20 Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 Python
Python下简易的单例模式详解
Apr 08 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
Python操作SQLite数据库过程解析
Sep 02 Python
Python实现线性插值和三次样条插值的示例代码
Nov 13 Python
python 实现二维列表转置
Dec 02 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
python+requests实现接口测试的完整步骤
Oct 27 Python
pytorch中的model.eval()和BN层的使用
May 22 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使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
javascript prototype 原型链
2009/03/12 Javascript
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
js实现拖拽功能
2017/03/01 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
python 类详解及简单实例
2017/03/24 Python
详解Python核心对象类型字符串
2018/02/11 Python
详解Python中的动态属性和特性
2018/04/07 Python
python中的逆序遍历实例
2019/12/25 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
墨西哥网上超市:Superama
2018/07/10 全球购物
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
简历自我评价怎么写好呢?
2014/01/04 职场文书
促销活动策划方案
2014/01/12 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
学习保证书100字
2015/02/26 职场文书
毕业生个人总结
2015/02/28 职场文书
小学英语教师研修感悟
2015/11/18 职场文书