Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为网络爬虫设置有效的cron作业_Php_Web Crawler_Cron Task - Fatal编程技术网

Php 如何为网络爬虫设置有效的cron作业

Php 如何为网络爬虫设置有效的cron作业,php,web-crawler,cron-task,Php,Web Crawler,Cron Task,我已经编写了一个php网络爬虫来索引180个特定源的内容,但是每页平均需要2秒来分析、抓取和保存我想要的内容:图像、url、标题、完整内容、摘录、标记。(有几种算法可以分析所有元标记以获得正确的数据) 我只抓取最新的9个文章页面,所以每个来源需要18-25秒 我创建了10个不同的cron作业(间隔6分钟),因此每个作业可以处理18个源(大约350秒) 这似乎非常低效,尤其是如果我想达到1k的来源。我应该修改什么 ps:我正在一个共享主机上测试它,一个专用服务器会大大减少时间吗 cron作业类似于

我已经编写了一个php网络爬虫来索引180个特定源的内容,但是每页平均需要2秒来分析、抓取和保存我想要的内容:图像、url、标题、完整内容、摘录、标记。(有几种算法可以分析所有元标记以获得正确的数据)

我只抓取最新的9个文章页面,所以每个来源需要18-25秒

我创建了10个不同的cron作业(间隔6分钟),因此每个作业可以处理18个源(大约350秒)

这似乎非常低效,尤其是如果我想达到1k的来源。我应该修改什么

ps:我正在一个共享主机上测试它,一个专用服务器会大大减少时间吗

cron作业类似于:

lynx-auth用户名:password-website.com/crawler.php?group=1

lynx-auth用户名:password-website.com/crawler.php?group=2

lynx-auth用户名:password-website.com/crawler.php?group=3 等等


爬虫脚本访问数据库中的18个来源,获取最新的9个文章页面,对内容进行爬虫,分析并根据结果将其存储在数据库中。

老实说,不要为此使用cron作业。安装一个守护进程,它将一直运行。如果它崩溃了,就可以重生,等等


老实说,不要为此使用cron作业。安装一个守护进程,它将一直运行。如果它崩溃了,就可以重生,等等


在cron作业运行期间,您的服务器是否已充分利用?让它们并行运行会不会有伤害?如果你把爬行和索引分开,也许你可以加快速度
wget
在爬行方面非常好且快速。让它做它的工作,用你的php脚本索引下载的文件。如果你可以直接运行crawler.php脚本,而不需要Web服务器和lynx,那么效率会更高。我该怎么做呢。。创建守护进程会更好吗?正如bigman所说,您需要能够直接从命令行运行php脚本。如果在共享服务器中不可能,则需要专用计算机(或具有根访问权限的虚拟机)。如果使用守护进程或cron作业,对效率没有影响。您需要确保任务本身尽可能高效。从命令行或在cronjob中运行脚本非常简单,就像
/usr/bin/php/path/to/crawlscript.php arg1 arg2 argN
那么基本上我需要修改算法,这就是主要问题?为什么命令行比cpanel cron job快?在cron作业运行期间,服务器是否得到充分利用?让它们并行运行会不会有伤害?如果你把爬行和索引分开,也许你可以加快速度
wget
在爬行方面非常好且快速。让它做它的工作,用你的php脚本索引下载的文件。如果你可以直接运行crawler.php脚本,而不需要Web服务器和lynx,那么效率会更高。我该怎么做呢。。创建守护进程会更好吗?正如bigman所说,您需要能够直接从命令行运行php脚本。如果在共享服务器中不可能,则需要专用计算机(或具有根访问权限的虚拟机)。如果使用守护进程或cron作业,对效率没有影响。您需要确保任务本身尽可能高效。从命令行或在cronjob中运行脚本非常简单,就像
/usr/bin/php/path/to/crawlscript.php arg1 arg2 argN
那么基本上我需要修改算法,这就是主要问题?为什么命令行比cpanel cron作业快