php - 更快地抓取页面 [PHP]

标签 php web-crawler

我有一个关于在 PHP 中抓取网页的小问题。我必须在一家大型网上商店抓取大约 90 000 种产品。我在 PHP 中尝试过,但一个产品需要大约 2-3 秒,这很糟糕。任何提示,如何更快地做到这一点?也许是 C++ 多线程版本?但是 HTTP 请求的时间呢?我的意思是,这是 PHP 的限制吗?感谢您的小费。

最佳答案

这是一个非常模糊的问题。当您对自己的代码进行基准测试时,最慢的部分是什么?是网络传输时间吗?使用不同的语言(或多个线程)不会改变这一点。

花时间解析页面了吗?你是怎么做的?如果您使用 XML 库来解析整个 DOM,您是否可以只查找关键字(甚至正则表达式)?这不太精确(并且在某种意义上不太正确),但也许更快。

您使用什么算法进行分析?其他数据结构会提供更好的性能吗?举一个简单的例子,如果你花费大量时间迭代一个数组,也许哈希映射更合适。

PHP 可以在多个进程中运行。如果您一次启动脚本的多个实例(在不同的页面上)会发生什么?总时间会减少吗?

最终,您描述了一个非常普遍的问题,因此我无法提供非常具体的解决方案,但没有内在的原因说明 PHP 不适合此任务。当您确定什么是缓慢的(无论您使用什么语言)后,您应该能够更准确地解决如何修复它。

关于php - 更快地抓取页面 [PHP],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11378347/

相关文章:

java - 使用 Java Swing 进行网络爬行

php - Symfony2 表单类型实体添加额外选项

php - ajax返回成功但mysql数据库未更新

javascript - 如何使用javascript播放具有相同ID的两个音频文件

javascript - 保存/镜像/抓取使用 javascript 生成内容的网页

java - 提高Crawler4j-Crawler效率、可扩展性

php - Laravel Eloquent 模型::查找不起作用

php - dompdf 和 php(mysql 数据)

php - 蜘蛛和刮刀架构

python - Scrapy 教程示例