如何在不超时的情况下执行PHP spider/scraper
基本上,我需要了解最长执行时间 我需要在不同的时间间隔刮取页面信息,这意味着在这些时间间隔调用bot,从数据库加载链接并刮取链接指向的页面 问题是,正在加载bot。如果我用javascript加载它(比如Ajax调用),浏览器会抛出一个错误,说页面响应yadda yadda yadda花费的时间太长,而且我必须保持页面打开 如果我从PHP内部执行,我可能会将执行时间延长到所需的时间,但是如果它确实抛出错误,我没有权限终止进程,并且在PHP执行完成之前浏览器中不会显示任何内容,对吗 我想知道有没有人有什么窍门可以绕过这件事?刮刀以不同的间隔自动执行,无需我全程观察 干杯:)这样使用: 用作: 看看这是怎么回事 基本上,您只需处理所需站点的某些部分,完成自己的工作,然后在设置continue=true参数时继续执行下一个请求。看看这是如何实现的 基本上,您只需处理所需站点的一部分,完成自己的工作,然后继续处理下一个请求(如果有continue=true参数集) “在PHP执行完成之前,浏览器中不会显示任何内容” 您可以使用来解决此问题:如何在不超时的情况下执行PHP spider/scraper,php,web-crawler,Php,Web Crawler,基本上,我需要了解最长执行时间 我需要在不同的时间间隔刮取页面信息,这意味着在这些时间间隔调用bot,从数据库加载链接并刮取链接指向的页面 问题是,正在加载bot。如果我用javascript加载它(比如Ajax调用),浏览器会抛出一个错误,说页面响应yadda yadda yadda花费的时间太长,而且我必须保持页面打开 如果我从PHP内部执行,我可能会将执行时间延长到所需的时间,但是如果它确实抛出错误,我没有权限终止进程,并且在PHP执行完成之前浏览器中不会显示任何内容,对吗 我想知道有没有
flush()
(菲律宾比索4,菲律宾比索5)
刷新PHP的输出缓冲区以及PHP使用的任何后端(CGI、web服务器等)。这将有效地将所有输出推送到用户的浏览器
“在PHP执行完成之前,浏览器中不会显示任何内容”
您可以使用来解决此问题:
flush()
(菲律宾比索4,菲律宾比索5)
刷新PHP的输出缓冲区以及PHP使用的任何后端(CGI、web服务器等)。这将有效地将所有输出推送到用户的浏览器
通过CRON运行并将spider分割成块,因此它一次只执行几个块。使用不同参数从CRON调用,只处理几个块。通过CRON运行,并将spider拆分为块,因此它一次只处理几个块。使用不同参数从CRON调用,只处理少量数据块。谢谢伙计,我将此与flush()欢呼声结合使用:)谢谢伙计,我将此与flush()欢呼声结合使用:)谢谢伙计,我将此与set_time_limit()欢呼声结合使用:)谢谢伙计,我将此与set_time_limit()欢呼声结合使用:)
set_time_limit(0);
// Do Time Consuming Operations Here