php如何抓取网页内容(就是公众号历史文章对应的网址和细节使用代理和客户端)

优采云 发布时间: 2021-10-08 20:18

  php如何抓取网页内容(就是公众号历史文章对应的网址和细节使用代理和客户端)

  这是前几天在公众号上发的文章。主要讨论目前微信公众号文章爬取的大致思路和优缺点。技术细节我就不讲了,分享一下别人已经有的开源项目,大家可以参考代码了解细节。

  背景

  微信公众号历史只能通过客户端(手机、PC、Mac)查看,网页版微信无法查看公众号历史文章,否则就没有今天的文章 .

  具体的解释是公众号历史文章对应的URL必须通过客户端生成一个key才能查看,这个key也是有限制的。具体限制如下:

  此密钥的有效期约为两个小时。密钥不通用,每个公众号必须单独生成。

  因为上面的问题,抢公众号没那么容易,所以现在一般有两种方式。

  抢搜狗微信。使用“中间人攻击”的想法来使用代理爬行。抢搜狗微信

  这个好理解,就是抓取网站的数据。具体代码请参考:代码是用Python编写的。

  优点:简单易用。可以批量获取账号。所有的爬取行为都可以在服务器上完成,不依赖于客户端。可以随时获取哪些公众号有更新。缺点:搜狗的微信反爬虫已经很复杂了。经常发现代码不再可用,或者跳转到验证码界面(我看过一个开源项目,有人购买了编码服务。当出现验证码时,直接调用编码界面,界面是很便宜,这是一个想法)。获取的链接是临时链接,需要跳转才能获取永久链接。只能获取公众号最近10次推送文章,无法获取历史记录。

  针对以上问题,如果你只是想玩玩和抓取最新的文章,可以使用搜狗微信,但如果你真的想抓取一个稳定更完整的数据,则需要使用下面的方法.

  使用代理和客户端爬取的优点可以爬取所有文章。您可以在任何帐户之间跳转(PC 和 Mac 需要一些技能)。您可以抓取 文章 的评论。你可以抓住文章的赞赏。可以抓取文章的阅读数和点赞数。稳定性是有保证的,因为实际上我们没有做任何非法操作。缺点是需要客户端,这也是直接在服务器上爬取的最大区别。因为需要一个客户端,所以效率比较低。平均而言,一个客户端每秒最多可以抓取 10 篇文章文章。如果比较快,很可能会出现请求过快的问题。在自动爬取过程中,偶尔会出现一些问题导致爬取停止,但这也是我们需要解决的问题。无法知道哪个公众号更新了,所以只能通过投票来完成(这个可以结合搜狗微信)。如何自动获取多个帐户

  第一步:获取你需要的账户的biz参数。这类似于帐户的 id。

  移动客户端或模拟器:

  具体方法是在每次请求历史列表时修改html添加一个跳转JavaScript。您可以在后端生成要跳转的 JavaScript。因为是后台生成的,可以控制跳转到哪个公众号,或者跳转到这个公众号的下一页。

  PC客户端、Mac客户端:

  PC 和 Mac 之间的一个问题是您无法在多个帐户之间跳转。有些人使用自动输入。每次需要跳转到哪个公众号时,在聊天对话中进入哪个公众号的历史页面。然后点击,这个方法是可行的。

  代理可用工具

  一个同学用Go写的开源agent,代码:

  您也可以使用阿里巴巴的anyproxy来修改网页数据

  您绝对可以在 Windows 上使用 Fiddle 或在 Mac 上使用 Charles,但它不如 anyproxy 灵活,因为一个使用配置,另一个可以编程。还是有很大差距的。

  使用anyproxy一段时间后,感觉很强大,很灵活。它在便利性、跨平台性和灵活性方面都优于 Fiddle 和 Charles,因此如果您之前没有使用过,我建议您使用它。

  今天我只谈想法。具体的技术细节我接下来会写在博客上,把我目前在做的爬虫平台开源。它主要使用anyproxy和Laravel,配合一个客户端实现以下功能:

  自动获取 文章 列表。自动抓取文章消息、点赞、阅读、打赏等,项目直接提供api,可以根据公众号获取对应公众号的历史文章记录。公众号文章的展示。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线