18

某微信爬虫工具多开方案

 3 years ago
source link: http://www.z16388.top/2019/11/12/most_wechat/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

某微信爬虫工具多开方案

2019-11-12

之前因为需求找到了这个超级好用的微信爬虫工具https://github.com/striver-ing/wechat-spider,目前已经开源。工具可以很方便地实现爬取微信文章,获取点赞、评论等功能。

最近,微信针对文章历史接口做了调整:PC版限制了爬取的次数,访问间隔应该控制在8分钟以上,移动端则是在两个月前直接干掉了这个功能。文章评论则没有改变。因此,这个工具目前最好的使用方式就是多开,分别爬不同的文章,再单开一个用来爬需要爬的评论。

工具的具体使用方法在原工程中都有提到,这里就不再赘述了。

在工具的使用方法中,我们知道,作者是使用全局代理,将所有的https消息都强制走了本机的8080端口,然后通过Python的mitmproxy来截取消息内容来实现的这个工具。那么,我可以使用局部代理,将制定的微信客户端,走制定端口,即可实现工具的多开。

有了这个思路,那么我们就只需要解决两个问题:

  1. 微信的多开
  2. 多个微信走多个局部代理

这里先说一下,我们无法使用微信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

这样虽然可以打开多个微信,但是在设置局部代理时,工具无法区相同路径下的相同可执行文件。因此,我们需要把微信客户端拷贝多份,以应对后面的步骤。

@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

需要注意的是,这样配置之后的脚本将不一定百分百执行成功,可能只打开一个客户端。一般第二次即可执行成功。

这里,我使用了Proxifier工具,进行局部代理。这个工具很容易获取,x度上很容易就可以获取到免费破解汉化的版本。

安装之后,我们开始配置工作。

1.配置文件->代理服务器 这里地址填本机127.0.0.1,端口填你想要转发的端口,比如8080,8081,协议类型是HTTPS。你想开多少,就填多少个。

图1
图2

2.配置文件->代理规则 这里我们把默认的全局代理给关闭,双击条目,将“是否有效”取消勾选即可。然后添加微信的代理规则,点击添加,名称随意,应用程序浏览到微信的exe文件,目标主机清空,端口清空,然后在最下方的动作中选择你上一步配置的一个端口。那么这个路径下的客户端执行时,便会代理到这个端口下了。

图3
图4

微信多开之后,我们会发现多开的这几个的微信的进程名是一样的,无法进行区分。这时候可以在任务管理器中使用切换到、最小化等功能确定哪个窗口是哪个进程,转到本地文件来确定他是哪个目录下的。在开多个的时候,一定要注意区分,以防登错账号,影响爬取。

爬虫的配置文件中,我们最好使用不同的mysql数据库,以免产影响。当然,如果你修改了原工具的代码,那就另当别论了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK