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天气预报采集器实现代码(网页爬虫)
Oct 07 Python
python uuid模块使用实例
Apr 08 Python
解决PyCharm中光标变粗的问题
Aug 05 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
Jan 24 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
Jun 04 Python
解决python3捕获cx_oracle抛出的异常错误问题
Oct 18 Python
python 常见字符串与函数的用法详解
Nov 23 Python
浅谈Python反射 &amp; 单例模式
Mar 21 Python
python opencv实现证件照换底功能
Aug 19 Python
Python线程threading模块用法详解
Feb 26 Python
如何用Python提取10000份log中的产品信息
Jan 14 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模板,主要想体现一下思路
2006/12/25 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
PDO::getAttribute讲解
2019/01/28 PHP
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
jquery text()要注意啦
2009/10/30 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
js密码强度检测
2016/01/07 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python操作MySQL数据库的方法
2018/06/20 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
水果连锁超市创业计划书
2014/01/24 职场文书
高级编程求职信模板
2014/02/16 职场文书
三万活动总结
2014/04/28 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
国防教育标语
2014/10/08 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang