Php 如何为网络爬虫设置有效的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 等等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作业类似于
爬虫脚本访问数据库中的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作业快