Python采集器搜寻到微信公共帐户历史记录文章的所有链接
优采云 发布时间: 2020-08-06 19:03因为一个朋友问我是否可以在微信公众号上找到所有历史文章的链接,所以我帮助他获得了它. 通过百度和谷歌,我发现人们现在有以下两个思路来攀登微信官方账号:
通过搜狗搜索微信公众号并获取链接. 通过提琴手检查手机微信以获取链接.
经过仔细考虑,搜狗首先被放弃了,因为在对搜狗的官方帐户进行初步了解之后,只有链接到前十篇文章. 这次让我谈谈我的想法.
思考
当我尝试在手机微信上获取官方帐户的历史链接时,偶然发现也可以使用计算机上的微信来获取该链接. 但这并没有太大影响. 因为我在手机和计算机上都尝试过,所以可以对其进行爬网,但是计算机使用起来更加方便.
首先,打开提琴手,然后在计算机端的微信上找到要爬网的微信官方帐户,然后在其上单击鼠标左键以查看所有历史信息. 单击查看历史信息后,我们将在提琴手中看到一个这样的GET请求: / MP / getmasssendmsg __ BIZ = MzA3NDk1NjI0OQ ==&UIN = MjgxMTU0NDM1键= cdce7679908e443d6f21adcc7236aea6bfd78ef06cb0f784644d5a3d1a7d1ee97b52997a3fdfca401835b9cc962bfa98e2d8f8806cba94b89ccd72c0883df2baaf712b0818727d149cefb3f920257d27&的devicetype =视窗+ 10&版本= 6203005d&LANG = zh_CN的&ascene = 7&pass_ticket = PMllYHvaLNk2DRePx1zNYuCv71ocxw7m6lOhOnaFfnnDt35P7ybHP3ESUYFoYaDQ,在前面添加后,打开整个&浏览器中的链接,您会发现该官方帐户的历史文章已打开.
用小提琴手多次抓取此链接并更改了几个官方帐户后,您会发现整个链接中的biz应该是微信官方帐户的标识符,uin应该是微信帐户的标识符,并且密钥是腾讯的算法. 在整个链接中,如果您要获取相同的微信官方帐户,则只有密钥是时间敏感的,而其他密钥是不变的. 如果超过一定时间,请使用此密钥打开链接,您将发现它无法使用,请使用微信将其打开!在这里,我本来以为如果使用微信附带的浏览器就不会出现及时性问题,因此一开始我的UA被设置为微信,然后我发现它没用...我切换回计算机. ..这是一个陷阱,您不能使用钥匙!幸运的是,如果您只注册一个官方帐户,仍然有足够的时间,但是编写程序时令人头疼. 每次失败,您都必须重新制作它.
通过检查此链接中的元素,不难发现我们已经可以看到该文章的链接,但是已经出现了问题. 该初始链接中仍然只有10篇近期文章. 这时,我们必须向下滑动滚动条以显示所有剩余的文章. 因此,在编写程序时,您需要通过selenium + phahtomJS链接此接口,并滑动滚动条,直到滚动条滑到底部. 通过这种方式,我们可以查看元素并看到已获得所有文章链接. **请注意,文章的链接隐藏在几个标签中,因此请全部查找,否则您将错过它们! **然后保存这些链接.
程序
关于我的计划思想:
整个过程是通过selenium + phantomJS链接上述链接,通过BeautifulSoup提取页面,使用JS滚动到末尾直到没有更多消息,最后找到所有链接并输出(记住是几种类型的链接),您必须在标记中找到所有链接). 由于朋友只需要此官方帐户的链接,并且由于仅更改同一官方帐户的链接的密钥,因此可以从bash获取密钥,而其他密钥可以写入程序. 我太懒了吗........这可能是一种思考方式,仍有许多事情可以优化...
附加代码()