少儿编程能教完几个全程课后,可以尝试向面向工作的学生挑战自己,当然这个工资也会上升一个台阶,有兼职有全职,网上多找找,这种机会还是不少的。
还有一种赚钱办法,是搞副业。
这里是副业不是创业,职场上你的努力工作大部分情况下只会让领导买车买房,真正的外快是不断用自己的生产工具创造可复制可复利的价值为自己或他人服务,顺便赚钱,比如薅羊毛案例:
- 用python技术薅羊毛
- 用python薅拼多多羊毛
自媒体案例:
- 微信公众号,广告接单
- 知乎,赞赏获利
- b站,1000播放量3块钱
比如,以今日头条极速版为首,包含趣头条、东方头条、全名小视频在内的 App 都有看新闻、视频送金币的活动,当金币达到一定量后,就可以提现到微信、支付包。
如果单纯靠人工去点击看新闻和视频,会浪费很多时间。如果是利用 Python 驱动手机去看新闻和视频,每天薅一个早餐钱还是很容易的。
简单介绍下我当时做的思路:以某条为例,首先我们需要利用 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'
defstart_my_app(package_name,activity_name):
"""
打开应用
adbshellamstart-ncom.tencent.mm/.ui.LauncherUI
:parampackage_name:
:return:
"""
os.popen('adbshellamstart-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)
exceptExceptionase:
print('等待广告元素异常')
print(e)
ads_element=poco(name='com.songheng.eastnews:id/aoy',textMatches='^跳过广告.*$')
ads_element1=poco(name='android.widget.TextView',text='跳过')
#跳过广告(0s)
ifads_element.exists():
print('跳过广告1!!!')
ads_element.click()
ifads_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()
ifnotlv_elements.exists():
print('新闻列表不存在')
return
#遍历每一条新闻
fornews_elementinlv_elements:
#新闻标题
news_title=news_element.offspring('com.songheng.eastnews:id/pb')
#作者
author_element=news_element.offspring('com.songheng.eastnews:id/a4f')
需要注意的是,上面获取的新闻列表中有很多广告和点击下载的内容,需要过滤掉。
#4.过滤广告
#到这里标识此条新闻:是一条有效的新闻【包含广告】
#注意:部分广告【包含点击标题就自动下载,左下角显示广告字眼等】要过滤掉
#场景一:
ifnews_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='广告通')
ifads_tips_element.exists():
print('广告!这是一个【广点通】广告,标题是:%s'% news_title.get_text())
continue
#常见三:有效角标识是广告的图标【奇虎广告】
ads_tips_element2=news_element.offspring('com.songheng.eastnews:id/q5')
ifads_tips_element2.exists():
print('广告!广告标题是:%s'% news_title.get_text())
continue
只有判断是一条正常的新闻,才点击新闻的标题元素进入新闻详情页面,如果右下角的「时间条元素」存在才代表阅读此篇新闻能获取到金币。
red_coin_element=poco('com.songheng.eastnews:id/aq8')
ifnotred_coin_element.exists():
print('当前新闻没有红包,返回!')
self.__back_keyevent()
continue
为了更真实的模拟人为看新闻这一操作,随机地模拟向上或向下滑动屏幕。
这里设置每篇文章阅读时间为 30 秒,阅读完成之后,执行返回操作,直到回到主界面,这样就完成了查看一篇新闻获取金币的流程。
oldtime=datetime.datetime.now()
whileTrue:
self.__swipe(Trueifrandom.randint(0,1)==0elseFalse)
newtime=datetime.datetime.now()
interval_time=(newtime-oldtime).seconds
ifinterval_time>=30:
print('阅读30秒新闻完成')
break
self.__read_key_news()
接着可以从下往上滑动页面,获取到新的页面的新闻列表,循环的进行阅读。
whileTrue:
self.watch_news_recommend()
print('查看一页完成,继续查看下一页的新闻。')
#滑动下一页的新闻
poco.swipe([0.5,0.8],[0.5,0.3],duration=1)
另外,注意应用的标题栏隔一段时间可以领取金币,定义一个方法去领取。
defget_top_title_coin(self):
"""
顶部金币领取
仅仅在新闻首页的时候才可以领取
:return:
"""
get_coin_element=poco(name='com.songheng.eastnews:id/arq',text="领取")
ifget_coin_element.exists():
print('顶部有金币可以领取!')
get_coin_element.click()
print('领完金币后可以关闭对话框!')
#关掉对话框
self.__back_keyevent()
else:
print('顶部没有金币或者不在首页')
然后可以点击视频 Tab 去切换到视频页面。和看新闻一样,这里同样是获取视频列表元素去遍历查看视频。