刷金币全自动脚本 | 让Python每天帮你薅一个早餐钱(送源码)

测试开发社区  6天前

阅读文本大概需要 12 分钟。

1

目 标 场 景

以今日头条极速版为首,包含趣头条、东方头条、全名小视频在内的 App 都有看新闻、视频送金币的活动,当金币达到一定量后,就可以提现到微信、支付包。

如果单纯靠人工去点击看新闻和视频,会浪费很多时间。本文的目标是利用 Python 驱动手机去看新闻和视频,每天帮我们薅一个早餐钱。

下面以「东方头条」客户端为例展开说明。

2

准 备 工 作

元素的定位需要借助 Airtes,需要在 PC 端进行安装,具体可以参考上一篇。另外这里以 Android 系统手机为例,所以提前配置好了 adb 环境。

另外,需要在虚拟环境内安装「pocoui」库。

pip3 install pocoui

3

分 析 思 路

首先我们需要利用 adb 命令打开东方头条 App。

使用 Android Studio 的 Analyze Apk 工具,可以获取应用包名和初始 Activity 分别是:

com.songheng.eastnews

com.oa.eastfirst.activity.WelcomeActivity

然后使用「adb shell am start」命令去打开东方头条的客户端。

# 应用包名

package_name = 'com.songheng.eastnews'

# 初始Activity

activity = 'com.oa.eastfirst.activity.WelcomeActivity'

def start_my_app(package_name, activity_name):

"""

打开应用

adb shell am start -n com.tencent.mm/.ui.LauncherUI

:param package_name:

:return:

"""

os.popen('adb shell am start -n %s/%s' % (package_name, activity_name))

start_my_app(package_name, activity)

由于第一次打开应用,会有一个显示广告的界面,我们需要通过 Airtest 获取到「跳过广告」元素,执行点击操作,让应用快速进入到主页面。

def __pre_and_skip_ads(self):

"""

预加载和跳过广告

:return:

"""

# 1.广告页面元素的出现

# 两种样式:跳过、跳过广告*秒

try:

poco('com.songheng.eastnews:id/aoy').wait_for_appearance(10)

except Exception as e:

print('等待广告元素异常')

print(e)

ads_element = poco(name='com.songheng.eastnews:id/aoy', textMatches='^跳过广告.*$')

ads_element1 = poco(name='android.widget.TextView', text='跳过')

# 跳过广告(0s)

if ads_element.exists():

print('跳过广告1!!!')

ads_element.click()

if ads_element1.exists():

print('跳过广告2!!!')

ads_element1.click()

# 2.等到到达主页面

poco('com.songheng.eastnews:id/g_').wait_for_appearance(120)

到达主页面之后,我们发现主要有 3 种方式获取金币,分别是「阅读文章」、「播放视频」、「播放小视频」,另外一种获取金币的方式就是归纳于其他方式中。

首先,我们使用 Airtest 来分析新闻 Tab 的列表。

新闻列表可以通过获取 name 为「com.songheng.eastnews:id/g_」 的元素,再取其所有子元素就能获取到第一页的新闻列表。

lv_elements = poco('com.songheng.eastnews:id/g_').children()

if not lv_elements.exists():

print('新闻列表不存在')

return

# 遍历每一条新闻

for news_element in lv_elements:

# 新闻标题

news_title = news_element.offspring('com.songheng.eastnews:id/pb')

#作者

author_element = news_element.offspring('com.songheng.eastnews:id/a4f')

需要注意的是,上面获取的新闻列表中有很多广告和点击下载的内容,需要过滤掉。

# 4.过滤广告

# 到这里标识此条新闻:是一条有效的新闻【包含广告】

# 注意:部分广告【包含点击标题就自动下载,左下角显示广告字眼等】要过滤掉

# 场景一:

if news_element.attr('name') == 'android.widget.FrameLayout':

print('广告!这是一个FrameLayout广告,标题是:%s' % news_title.get_text())

continue

# 常见二:点击标题直接下载其他应用

ads_tips_element = news_element.offspring(name='com.songheng.eastnews:id/a4f', text='广告通')

if ads_tips_element.exists():

print('广告!这是一个【广点通】广告,标题是:%s' % news_title.get_text())

continue

# 常见三:有效角标识是广告的图标【奇虎广告】

ads_tips_element2 = news_element.offspring('com.songheng.eastnews:id/q5')

if ads_tips_element2.exists():

print('广告!广告标题是:%s' % news_title.get_text())

continue

只有判断是一条正常的新闻,才点击新闻的标题元素进入新闻详情页面,如果右下角的「时间条元素」存在才代表阅读此篇新闻能获取到金币。

red_coin_element = poco('com.songheng.eastnews:id/aq8')

if not red_coin_element.exists():

print('当前新闻没有红包,返回!')

self.__back_keyevent()

continue

为了更真实的模拟人为看新闻这一操作,随机地模拟向上或向下滑动屏幕。

这里设置每篇文章阅读时间为 30 秒,阅读完成之后,执行返回操作,直到回到主界面,这样就完成了查看一篇新闻获取金币的流程。

oldtime = datetime.datetime.now()

while True:

self.__swipe(True if random.randint(0, 1) == 0 else False)

newtime = datetime.datetime.now()

interval_time = (newtime - oldtime).seconds

if interval_time >= 30:

print('阅读30秒新闻完成')

break

self.__read_key_news()

接着可以从下往上滑动页面,获取到新的页面的新闻列表,循环的进行阅读。

while True:

self.watch_news_recommend()

print('查看一页完成,继续查看下一页的新闻。')

# 滑动下一页的新闻

poco.swipe([0.5, 0.8], [0.5, 0.3], duration=1)

另外,注意应用的标题栏隔一段时间可以领取金币,定义一个方法去领取。

def get_top_title_coin(self):

"""

顶部金币领取

仅仅在新闻首页的时候才可以领取

:return:

"""

get_coin_element = poco(name='com.songheng.eastnews:id/arq', text="领取")

if get_coin_element.exists():

print('顶部有金币可以领取!')

get_coin_element.click()

print('领完金币后可以关闭对话框!')

# 关掉对话框

self.__back_keyevent()

else:

print('顶部没有金币或者不在首页')

然后可以点击视频 Tab 去切换到视频页面。和看新闻一样,这里同样是获取视频列表元素去遍历查看视频。

def __video(self):

"""

查看视频

:return:

"""

poco('com.songheng.eastnews:id/ko').click()

while True:

# 视频列表

poco('com.songheng.eastnews:id/a0z').wait_for_appearance()

sleep(2)

self.__read_key_news()

video_elements = poco('com.songheng.eastnews:id/a0z').children()

print('video items是否存在:')

print(video_elements.exists())

# 遍历视频

# 注意:视频播放完全可以提前返回

for video_element in video_elements:

# 1.标题元素

video_title_element = video_element.offspring('com.songheng.eastnews:id/a3q')

# 播放按钮

video_play_element = video_element.offspring('com.songheng.eastnews:id/nj')

# 2.必须保证【视频标题】和【播放按钮】都可见

if not video_title_element.exists() or not video_play_element.exists():

continue

# 3.标题

video_title = video_element.offspring('com.songheng.eastnews:id/a3q').get_text()

print('当前视频的标题是:%s,播放当前视频' % video_title)

# 点击播放视频

video_play_element.focus("center").click()

# 4.播放视频

self.play_video()

print('播放下一个视频')

self.__back_keyevent()

# 滑动到下一页的视频

poco.swipe([0.5, 0.8], [0.5, 0.3], duration=0.2)

观看小视频获取金币的操作最为简单。首先切换到小视频 Tab,获取到第一个视频的元素,执行点击操作,开始播放小视频。

poco('com.songheng.eastnews:id/kr').click()

# 加载出列表元素,点击第一项进入

poco('com.songheng.eastnews:id/a0p').child('com.songheng.eastnews:id/g_').wait_for_appearance(60)

poco('com.songheng.eastnews:id/a0p').child('com.songheng.eastnews:id/g_').children()[0].click()

最后只需要等待视频播放 30 秒之后,使用 swipe 函数向左滑动屏幕切换到下一个视频,就可以实现反复播放获取金币的操作。

while True:

sleep(30)

# 向左滑动

poco.swipe([0.9, 0.5], [0.1, 0.5], duration=0.2)

4

结 果 结 论

执行程序,手机会自动打开东方头条客户端,执行阅读新闻、看视频和小视频的一系列操作。

最后只需要将阅读新闻、播放视频和小视频的时间分配好,一个客户端获取金币达到上限后,就关闭应用,然后切换到其他 App 客户端,继续阅读新闻和视频,就可以实现薅多个平台的羊毛。

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

我已经将看新闻刷金币全自动化脚本全部源码上传到github上:https://github.com/xingag/app_spider/tree/master/%E4%B8%9C%E6%96%B9%E5%A4%B4%E6%9D%A1

python 刷手机今日头条金币_刷金币全自动脚本 | 让Python每天帮你薅一个早餐钱(送源码)...相关推荐

  1. 刷金币全自动脚本 | 让Python每天帮你薅一个早餐钱(送源码)

    刷金币全自动脚本 | 让Python每天帮你薅一个早餐钱(送源码) 测试开发社区  6天前 文章转载自公众号  AirPython , 作者 星安果 阅读文本大概需要 12 分钟. 1 目 标 场 景 ...

  2. 薅羊毛 | 让Python每天帮你薅一个早餐钱

    阅读文本大概需要 12 分钟. 1 目 标 场 景 以今日头条极速版为首,包含趣头条.东方头条.全名小视频在内的 App 都有看新闻.视频送金币的活动,当金币达到一定量后,就可以提现到微信.支付包. ...

  3. 让Python每天帮你薅一个早餐钱

    1 目 标 场 景 以今日头条极速版为首,包含趣头条.东方头条.全名小视频在内的 App 都有看新闻.视频送金币的活动,当金币达到一定量后,就可以提现到微信.支付包. 如果单纯靠人工去点击看新闻和视频 ...

  4. python爬取今日头条专栏_[python3]今日头条图片爬取

    前言 代码设计流程,先模拟ajax发送搜索"街拍美女",提取返回json里面的article_url,再访问article_url,提取article_url响应的图片url,访问 ...

  5. python爬取今日头条专栏_爬取今日头条Ajax请求

    搜索头条 可以得到这个网址: 开发者工具查看: 我们在搜索中并没有发现上面的文字,那么我们可以初步判定,这个由Ajax加载,然后渲染出来的.此时切换到xhr过滤,可以看到确实是ajax请求. 观察请求 ...

  6. iphone看python文件_Python实战 | 只需 ”三步“ 爬取二手iphone手机信息(转发送源码)...

    原标题:Python实战 | 只需 "三步" 爬取二手iphone手机信息(转发送源码) 本次实战是爬取二手苹果手机的信息,共爬取了300部手机信息,效果如下: 开发环境 环境:M ...

  7. python 爬取企业注册信息_读书笔记(十)——python简单爬取企查查网企业信息,并以excel格式存储...

    今天这个小爬虫是应朋友,帮忙写的一个简单的爬虫,目的是爬取企查查这个网站的企业信息. 编程最终要的就是搭建编程环境,这里我们的编程环境是: python3.6 BeautifulSoup模块 lxml ...

  8. pytorch实现手写数字识别_送源码!人工智能实现:识别图片中的手写数字,值得收藏...

    作者|小林同学 关注<高手杰瑞>,每天有不一样的实用小教程发布哦! 哈喽,大家好我是杰瑞.今天我给大家带来一个用机器学习的方法来实现手写数字识别的教程,就像C语言中输出的那一行" ...

  9. 今日头条阅读量怎么刷_揭露头条刷阅读量内幕:怎么刷的今日头条阅读量

    如今,今日头条备受关注的底气,来自于让百度倒吸一口凉气的夸张数据: 截至2016年9月底,今日头条已有5.8亿用户,日活用户超过6300万,单用户日均使用时长超过76分钟. 也就是说,目前用户每天在今 ...

  10. web页面刷不出来 白色_今日头条连接超时刷不出来解决方案

    起因: 过年回家,手机连接家里的WIFI正常上网,唯独今日头条总显示连接网络超时 .每次一到晚上深夜的时候,我的手机又可以正常访问今日头条了,研究了好几天各种调试无用 ,最后发现自己的设备IP地址不在 ...

最新文章

  1. Prioritize your work by your title
  2. 《现代操作系统》第1章读书笔记-- 引论(未完成)
  3. mysql 云主机名_mysql部署到云主机的笔记
  4. SAP Commerce(原Hybris)的订单处理框架和SAP CRM One Order框架
  5. 线程池 调度 java_java调度器和线程池总结
  6. 设计模式之我见系列——策略模式
  7. linux纯文字界面,Linux入门 Part1: 使用控制台(1)-纯文本界面
  8. pythonlauncher是干什么用的_python的launcher用法知识点总结
  9. 苹果屏保壁纸_抖音超火的时间轮盘屏保,安卓苹果都可以用。
  10. Casbin访问控制框架入门详解及Java案例示范
  11. 机器学习模型的部署上线方式
  12. 日常工作常用的几款小工具
  13. php通过JODConverter将word转换为pdf
  14. js正则表达式匹配纯中文或纯英文
  15. 第11届极客大挑战writeup
  16. 8.12 纪中集训 Day12
  17. 自动安装第三方库python,python第三方库自动安装脚本
  18. 微分流形与黎曼几何学习笔记(转自http://blog.sciencenet.cn/home.php?mod=spaceuid=81613do=blogid=333317)
  19. 怎么将PDF图纸转换成CAD图纸
  20. 华清远见嵌入式班结业总结

热门文章

  1. 点餐小程序源码­|PHP微信点餐小程序
  2. MacBook 运维软件
  3. 打印机 计算机 usb,电脑没法识别打印机(USB接口)
  4. Android手机多种截图方式
  5. SVN局域网服务器搭建
  6. 西数硬盘MRT维修思路
  7. TB6612FNG电机驱动模块纯硬件调试
  8. R语言与Python对比
  9. intel h61 linux驱动下载,intel h61主板驱动
  10. Docker容器监控cAdvisor