目录

1 人一对,影一双

2 我们的感知是真空孔道吗?

2.1 视觉

2.2 听觉

3 微信朋友圈自动点赞(Python代码实现) 

3.1 赞起来

3.2 知识储备

3.3 Python代码


1 人一对,影一双

想要和你于杏花疏影间执手并肩,看一场花开花落,感触春之暖意融融。

想要和你于冰封满城间漫步雪陌,听一场落雪簌簌,感触冬之纯白寂静。

想要和你在寻常的烟火岁月间同沐风雨,共看风月,一起等到岁末白首,依旧不离不散。

微信朋友圈自动点赞(Python代码实现)_代码实现


2 我们的感知是真空孔道吗?

(左边第一位是施一公,第二位是杨振宁,yyds!)

微信朋友圈自动点赞(Python代码实现)_微信朋友圈_02

2.1 视觉

也就是说,凡不在这个范围内发光和反光的物体对视觉来说,均可属于不存在,或者,凡不以发光和反光呈现其属性的物体对视觉来说均是不存在的。

微信朋友圈自动点赞(Python代码实现)_微信朋友圈_03

所谓“颜色”不过是可见光波长的光波作用于视觉系统的感觉转换产物,混合光产生白色光觉,单一波长的光波只要相差5纳米,人眼即可产生不同的色觉,故从400—700纳米之间的光波中大约能变换出150多种不同的“色”,主要有:红(700—610)、橙(610—590)、黄(590—570)、绿(570—500)、青(500—460)、蓝(460—440)、紫(440—400)等7色。试想,倘若人眼的构造起初就是一架光谱波长测定仪,那么世界还会有颜色吗?   

2.2 听觉

所谓“声音”不过是20——20000赫兹的机械振动波刺激听觉器官所引起的“错觉”。错就错在这“声音”并不能反映出“什么是声音“,反而让听者误以为”声音“,即使在耳朵之外也是直接是一种客观的音响。而导致这项错误的不仅仅是鼓膜、耳蜗膜细胞和听觉神经中枢,就连外耳道也在作祟,致使较小的针频变成很大的声音。相当于说低于20HZ的次声波人耳是听不见的,超过20000HZ的超声波人耳也是听不见的,我们能听到的震动波范围很窄。倘若人耳的构造起初就是一台振动波长测定仪,那么世界还有声音吗?

 就像我们给电脑输入的本质上只是0和1,但是电脑给我们看到的却是非常逼真的画面。我们的感官是有规定性的,不是客观世界的真实反映,当然这里没有否认外面确实有一个真正的客观世界存在,你觉得还“眼见为实”吗?

微信朋友圈自动点赞(Python代码实现)_微信朋友圈_04


3 微信朋友圈自动点赞(Python代码实现) 

3.1 赞起来

微信朋友圈自动点赞(Python代码实现)_微信朋友圈_05

3.2 知识储备

(1)借助Uiautomator2,可以实现自动化

UiAutomator是Google提供的用来做安卓自动化测试的一个Java库,可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作。Uiautomator2是在Uiautomator之上的python的接口封装,简单来说 Uiautomator2可以看到手机当前屏幕上有哪些控件,其坐标是啥,并且还可以模拟点击。

(2)Uiautomator2的安装和使用

详细可以参考下官方文档​​Uiautomator2​​ ,安装方式很简单,下面一条命令即可:

pip install --upgrade --pre uiautomator2

使用的话这里有几个坑,手机接入电脑前首先需要开启开发者模式,并开启USB调试,USB安装 (如下图),这样才能保证uiautomator2有足够的权限操作你的手机。

                                       

微信朋友圈自动点赞(Python代码实现)_微信朋友圈_06

 

第一次使用过uiautomator2后,它会在你手机上安装ATX这个应用,打开这个应用你就可以之后通过无线的方式操作你的手机了。

                               

微信朋友圈自动点赞(Python代码实现)_微信朋友圈_07

3.3 Python代码

import uiautomator2 as u2
import time

d = u2.connect() # 有线连接,手机需要插电脑上
#d = u2.connect("147.2588.0.102") #通过无线连接,电脑和手机需要在同一个局域网内,并且需要先用有线的方式做过初始化


d.app_start("com.tencent.mm")
time.sleep(0.3)
d(text="发现").click()
time.sleep(0.3)
d(text="朋友圈").click()

def click():
time.sleep(0.2)
d.xpath("//*[@resource-id='com.tencent.mm:id/kn']").click()
time.sleep(0.2)
if d.xpath("//*[@text='赞']").exists:
time.sleep(0.2)
d(text="赞").click()
time.sleep(0.1)
return True
time.sleep(0.3)
return False


def swipeDown():
a = d.xpath("//*[@resource-id='com.tencent.mm:id/kn']")
y = a.get().bounds
dist = y[3]
if dist < 200:
dist = 220
d.swipe(300, dist, 300, 50, 0.2)
time.sleep(0.1)


cnt = 0
while True:
if d.xpath("//*[@text='5小时前']").exists:
break
if click() == False:
cnt = cnt + 1
if cnt > 2:
break
swipeDown()