Python最新的爬朋友圈方法!
几年前,一款生成朋友圈相册产品出现在互联网上。但它的过程不是互联网:
首先你需要添加指定的微信号,并给这个微信号查看你朋友圈的权限;
然后,再等几个小时;
最后得到一个链接,里面显示了我的朋友圈,有相册模板。
刚开始听起来很牛逼,我还以为这个产品是怎么得到个人朋友圈数据的,直到看到需要先加微信好友,我立刻笑着理解了。
在其实,朋友圈一直是很多人的爬虫想要采集的领地。,之前,朋友圈只能在手机或平板电脑上看到。为了得到朋友圈的数据,** *要么手工复制人肉,要么用钩子处理。
* *这两个操作一个太低端,一个太高端。
有没有简单一点的?* * Appnium可能是一种比钩子操作简单得多的方法。但是Appnium的环境配置会吓跑很多朋友。
* *因此,Appnium的门槛仍然略高。
直到最近,微信电脑版开始支持朋友圈,的情况似乎有所好转!
所以可以通过 PyWinAuto 和 PyAutoGui 这两个工具,实现对桌面程序的自动化控制和数据采集.
这两个工具可以应用在微信朋友圈的数据收集上吗?
首先,介绍所需的库:
1.“导入psutil”
2.`导入pywinauto `
3.`从pywinauto.application导入应用程序`中
其中包括:
Psutil用于获取微信电脑版的流程信息;
Pywinauto用于微信电脑版的自动控制
然后,我们通过psutil库获取微信电脑版程序的进程ID:
1.` PID=0 '
2.` for proc in PSU til . process _ ITER(): `
3.` try: '
4.` pinfo=proc.as_dict(attrs=['pid ',' name'])'
5.` psutil除外。NoSuchProcess: `
6.“通过”
7.` else: '
8.` if '微信. exe'==pinfo['name']: '
9.` PID=pinfo['pid']'
该进程ID用于提供PyWinAuto连接微信电脑版。然后,用PyWinAuto实例化应用程序:
1.` app=应用程序(后端='uia ')。连接(流程=工艺流程图)`
然后控制微信电脑版,打开朋友圈窗口:
1.` win=app['微信']'
2.` pyq _ BTN=win . child _ window(title='朋友圈',control_type='Button ')
3.` cords=pyq_btn.rectangle()`
4.` pywinauto . mouse . click(button=' left ',coords=(cords.left 10,cords.top 10))'
有了上面的代码,Python代码控制微信电脑版打开朋友圈窗口。效果如下:
朋友圈的窗口是开着的。如果你得到里面的数据呢?
让我们使用。dump_tree()方法查看朋友圈窗口中每个控件的结构:
1.` print(pyq _ win . dump _ tree())` 0
这将把朋友圈窗口中所有显示组件的结构打印到控制台上,显示的内容如下图所示:
我们来看一个具体的例子,比如朋友圈里的这条消息:
它在dump_tree()中的结构如下:
可以看出,窗口中的每一个信息,比如联系人的名称,朋友圈内容,朋友圈发布时间等等,都是由各种组件组成的。
我们可以通过获取和控制这些组件来提取数据。例如,在这个例子中,我们可以通过定位Edit组件来获取这个朋友圈的内容:
和其他工具相比,是不是极其简单?
它不仅简单,而且非常有效。
感兴趣的朋友,赶紧试试吧!
文末
你最喜欢的收藏是我最大的鼓励!
欢迎我,分享Python干货,交流Python技术。
如果你对文章有什么意见,或者有什么技术问题,欢迎在评论区留言讨论!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151777.html