背景信息-我创建了一个网上商店,前段时间我投递产品,我创建了网站,并手动添加了所有产品信息。现在我有了php的知识,我创建了一个抓取器/爬行器来获取我需要的所有信息,而不需要手动做任何事情。
问题-我的脚本运行在我的本地服务器上收集网站的所有链接sitemap.xml这是上传到我的数据库一旦这个脚本完成它开始通过链接提取所需的数据图片,价格,名称,描述等…我正在抓取的网站很不高兴,因为我这样做是因为人/计算机的错误,这些错误只能被人发现,但已经被允许了。无论如何,我的脚本有时会抛出一个错误,当一个项目由于一些未知的原因而不能被抓取时,所以当脚本抛出这个错误时,我放了一个骰子()。
这是放置在mysql while循环中的链接,我已经注意到几次,当发生错误时,脚本停止加载会显示确切的错误,但当我关闭浏览器时,它会继续删除查询并提取我需要在服务器停止之前手动重新启动的信息。
这是怎么可能的,我能做些什么来防止这种情况?是不是die()语句只是杀死了客户端脚本而使服务器端脚本保持运行?
发布于 2013-09-09 22:41:36
因此,您在本地运行PHP以从远程站点收集数据。您可以在本地浏览器中启动PHP脚本。并且当浏览器关闭时,脚本不会停止。
当然,必须停止本地服务器。
但是,我认为PHP也可以从命令行运行(也许只有Linux?)然后输出可以转到命令行,命令行可能会被干掉。
另一种解决方案是:在循环中检查文件(不)的存在,然后消亡。第二个PHP脚本可在第二个浏览器选项卡中调用,然后添加/删除该信号文件。
(该文件也可以用作锁,因此不会启动两次数据收集。)
https://stackoverflow.com/questions/18700580
复制相似问题