1

背景信息 - 不久前我创建了一个在线商店,我创建了网站并手动添加了所有产品信息。现在我有 php 知识我创建了一个刮板/蜘蛛来获取我需要的所有必需信息,而无需手动做任何事情

问题 - 我的脚本在我的本地服务器上运行,从站点 sitemap.xml 收集所有链接,一旦此脚本完成,它就会开始通过链接提取所需的数据图片、价格、名称、描述等...我正在抓取的网站不高兴我正在这样做,因为人/计算机错误只能被人类发现,但允许这样做。无论如何,当由于某些未知原因无法抓取项目时,我的脚本有时会向我抛出错误,因此当脚本抛出此错误时,我放了一个 die()。

这被放置在链接的 mysql while 循环中,我注意到有几次,当确实发生错误时,脚本停止加载会向我显示确切的错误,但是当我关闭浏览器时,它会继续删除查询并提取信息我需要在停止之前手动重新启动服务器。

这怎么可能,我能做些什么来防止这种情况发生?是不是 die() 语句只是杀死了客户端脚本并保持服务器端脚本运行?

4

1 回答 1

0

因此,您在本地运行 PHP 以从远程站点收集数据。您在本地浏览器中启动 PHP 脚本。并且当浏览器关闭时脚本不会停止。

当然必须停止本地服务器。

但是我认为 PHP 也可以从命令行运行(也许只有 Linux?)然后输出可以转到命令行,命令行可能会被简单地杀死。

另一种解决方案是:在循环中检查文件的(不)存在,然后死掉。第二个 PHP 脚本,可在第二个浏览器选项卡中调用,然后添加/删除该信号文件。

(该文件也可以用作锁,因此您不必开始两次数据收集。)

于 2013-09-09T14:41:35.867 回答