采集网站内容(如何确保PHP程序不超时-Snoopy采集类的使用方法)

优采云 发布时间: 2022-03-28 00:13

  采集网站内容(如何确保PHP程序不超时-Snoopy采集类的使用方法)

  在PHP的采集中,我们可以使用很多方法,比如CURL,file_get_contents等。基于一些空间商的限制,空间不能使用CURL。在这种情况下,我们可以选择使用 PHP 采集 类---Snoopy采集 类。这个类的具体用法就不做介绍了。网络上有很多关于此的内容。在我的文章中也有对史努比的介绍。

  -------------------------------------------------- -------------------------------------------------- ---------------------

  在对 网站 执行 采集 时,您需要了解一些正则表达式的知识,以便您可以过滤掉您需要的部分。以上是背景内容,接下来说说我在采集的过程中遇到的一些问题。

  1、对于像 PHP 这样的脚本语言,没有真正的时钟机制可以运行。那么在采集全站数据的时候会遇到一些问题。如何确保 PHP 程序不会超时。

  我使用的解决方案是利用 javascript 的时钟脚本作为计时器。js中setinterval方法用多久。使用参数访问指定的 URL。

  例如: localhost/coll.php?page=* ,其中 page 基于您指定的 采集 页数。采集 分页就是这种情况。

  在 PHP 程序中及时刷新缓存流。

  ob_start();

  //代码

  ob_end_flush();

  这是超时的解决方案,您还有哪些其他解决方案?希望多多分享。

  2、对于一些网站服务器,模仿采集解决方案

  就网站而言,并没有真正的模仿采集。如果有的网站在采集中发现你并封禁IP,Snoopy还有代理功能,可以动态配置IP。这样你就可以逃脱盾牌了。

  我遇到了一个网站,它做了一些高级保护。当他发现你是采集他的网站内容时,他会限制封IP的行为一分钟或一段时间。如果此时使用 $_SERVER["REMOTE_ADDR"] 的方法,那么代理会失败。这种情况下,我们可以更恶毒,把js时钟脚本的触发时间改成比他封IP的时间还要长。这可以绕过。虽然你 采集 会慢一些。为此网站我的厨艺是这样的。如果还有其他方法,请分享。

  -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --

  采集这些问题主要是在过程中遇到的。如果有不同的采集方式,或者其他绕过服务器禁令的方式。希望大家可以分享。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线