之前因为需求找到了这个超级好用的微信爬虫工具https://github.com/striver-ing/wechat-spider,目前已经开源。工具可以很方便地实现爬取微信文章,获取点赞、评论等功能。
最近,微信针对文章历史接口做了调整:PC版限制了爬取的次数,访问间隔应该控制在8分钟以上,移动端则是在两个月前直接干掉了这个功能。文章评论则没有改变。因此,这个工具目前最好的使用方式就是多开,分别爬不同的文章,再单开一个用来爬需要爬的评论。
工具的具体使用方法在原工程中都有提到,这里就不再赘述了。
在工具的使用方法中,我们知道,作者是使用全局代理,将所有的https消息都强制走了本机的8080端口,然后通过Python的mitmproxy来截取消息内容来实现的这个工具。那么,我可以使用局部代理,将制定的微信客户端,走制定端口,即可实现工具的多开。
有了这个思路,那么我们就只需要解决两个问题:
微信的多开
多个微信走多个局部代理
这里先说一下,我们无法使用微信PC客户端自带的代理功能。因为一旦这个功能开启,微信的所有链接都将进行加密,你得到的只会是一个格式如:https://xxx.xxx.xx.xx/mmtls/xxxxxx的加密链接。
微信的多开
微信多开的实现比较简单,直接使用bat脚本打开多个微信即可。需要注意的是,要以管理员模式运行。
@echo off
start /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exe
start /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exe
start /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exe
start /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exe
start /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exe
exit
这样虽然可以打开多个微信,但是在设置局部代理时,工具无法区相同路径下的相同可执行文件。因此,我们需要把微信客户端拷贝多份,以应对后面的步骤。
@echo off
start /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exe
start /d "C:\Program Files (x86)\Tencent\WeChatb\" WeChatb.exe
start /d "C:\Program Files (x86)\Tencent\WeChatc\" WeChatc.exe
start /d "C:\Program Files (x86)\Tencent\WeChatd\" WeChatd.exe
start /d "C:\Program Files (x86)\Tencent\WeChate\" WeChate.exe
exit
需要注意的是,这样配置之后的脚本将不一定百分百执行成功,可能只打开一个客户端。一般第二次即可执行成功。
局部代理
这里,我使用了Proxifier工具,进行局部代理。这个工具很容易获取,x度上很容易就可以获取到免费破解汉化的版本。
安装之后,我们开始配置工作。
1.配置文件->代理服务器 这里地址填本机127.0.0.1,端口填你想要转发的端口,比如8080,8081,协议类型是HTTPS。你想开多少,就填多少个。
图1
图2
2.配置文件->代理规则 这里我们把默认的全局代理给关闭,双击条目,将“是否有效”取消勾选即可。然后添加微信的代理规则,点击添加,名称随意,应用程序浏览到微信的exe文件,目标主机清空,端口清空,然后在最下方的动作中选择你上一步配置的一个端口。那么这个路径下的客户端执行时,便会代理到这个端口下了。
图3
图4
微信多开之后,我们会发现多开的这几个的微信的进程名是一样的,无法进行区分。这时候可以在任务管理器中使用切换到、最小化等功能确定哪个窗口是哪个进程,转到本地文件来确定他是哪个目录下的。在开多个的时候,一定要注意区分,以防登错账号,影响爬取。
爬虫的配置文件中,我们最好使用不同的mysql数据库,以免产影响。当然,如果你修改了原工具的代码,那就另当别论了。
评论 (0)