几年前,网上出现了一款生成朋友圈相册的产品。 但它的过程听起来很不像互联网:
一开始听起来很牛逼,我就在想这个产品如何获取个人朋友圈数据。 直到看到它的使用过程需要先添加微信好友,我瞬间就笑了。 事实上,朋友圈一直是很多人爬虫想要采集的领地。 此前,朋友圈只能在手机或Pad上查看。 如果你想从朋友圈获取数据,你要么手动复制,要么通过钩子处理。 这两种操作,一个太低端,另一个太高端。 有没有简单一点的? 可能有一种方法操作起来比简单很多,但是环境配置会让很多朋友望而却步。 所以门槛还是稍高一些。 直到最近,电脑版微信开始支持朋友圈,事情似乎出现了转机!
此前,周老师介绍了《桌面图形界面程序的自动化和集合》,来谈谈桌面图形界面的自动化和集合。
提到通过这两个工具可以实现桌面程序的自动控制和数据采集。 这两个工具可以应用于微信朋友圈数据的采集吗? 周先生立即写了一个demo进行测试。 首先,导入所需的库:
。
在:
然后,我们通过库获取微信电脑版程序的进程ID:
PID = 0for proc in .():try: = proc.(=['pid', 'name']) .::if '.exe' == ['name']:PID = ['pid']
该进程ID用于连接微信PC版。 然后,使用以下命令实例化一个应用程序:
应用程序 = (='uia').(=PID)
然后控制电脑版微信,打开朋友圈窗口:
win = app['微信'] = win.(="朋友圈", ="") = .()..(='left', =(.left + 10, + 10))
上述代码实现了微信电脑版的代码控制打开朋友圈窗口。 效果如下:
朋友圈之窗已打开。 如果我们拿到里面的数据怎么办? 我们先用 .() 方法看看 窗口中各个控件的结构是怎样的:
(.())
这样会将朋友圈窗口中显示的所有组件的结构打印到控制台,显示内容如下图:
我们看一个具体的例子,比如朋友圈里的这条消息:
()中其结构如下:
可以看到,窗口中的每一条信息,比如联系人姓名、朋友圈内容、朋友圈发布时间等,都是由各个组件组成的。 我们可以通过获取和控制这些组件来提取数据。 比如这个例子中,我们可以通过定位Edit组件来获取这个朋友圈的内容:
与其他工具相比,是不是极其简单? 不仅简单,而且效果也很好。 有兴趣的朋友,赶快来尝试一下吧!
如果觉得文章不错,请点赞、分享、留言,因为这将是我继续输出更多优质文章的最强动力!自学超硬核资料
最后送你一个学习大礼包,里面有基础知识、爬虫、数据分析、Web开发等全套资料,当你彻底理解了这些资料后,你就可以扔掉其他的资料了。 这些资料都是视频,非常方便学习。
ps:都是视频学习资料,非常适合基础差或者零基础的同学。