Сканирование веб-страниц на PHP5 (простой анализатор DOM || file_get_contents () + regexp) ... разумные ресурсы - PullRequest
0 голосов
/ 13 февраля 2011

Я думал о сценарии, который сканировал бы более 10 веб-сайтов на предмет определенного контента внутри определенной div.Допустим, он будет использоваться умеренно, около 400 поисков в день.

Какой из двух пунктов в заголовке будет лучше поддерживать нагрузку, потреблять меньше ресурсов и улучшать скорость:

Создание DOMс каждого из веб-сайтов, затем повторяя каждый для определенного идентификатора div

ИЛИ

, создавая строку с веб-сайта с file_get_contents, а затем повторно определяя необходимую строку.

Чтобы конкретнее определить, какую операцию мне нужно выполнить, услышите следующее:

Дополнительный вопрос: способен ли regexp искать следующее вхождение данной строки:

<div id="myId"> needed string </div>

чтобы идентифицировать тег с заданным идентификатором и возвращать ТОЛЬКО что находится между тегами?

Пожалуйста, отвечайте только да / нет, если это возможно, я открою отдельный вопрос о синтаксисе, такздесь не все в комплекте.

Ответы [ 2 ]

1 голос
/ 13 февраля 2011

Для 400 поисков в день, какой метод вы используете, довольно безразличен, с точки зрения производительности.

В любом случае самым быстрым методом будет file_get_contents + strpos + substr, если только алгоритм определения местоположения + извлечения не достаточно сложен. В зависимости от конкретного регулярного выражения оно может быть или не быть быстрее, чем DOM, но, скорее всего, так и есть. DOM, вероятно, будет более надежным методом, чем регулярные выражения, но зависит от уровня правильности ваших страниц (libxml2 точно не имитирует синтаксический анализ браузера).

0 голосов
/ 13 февраля 2011
  1. Да

  2. Скорость будет зависеть от вашего сервера и рассматриваемых страниц; Время выполнения обоих способов будет незначительным по сравнению со временем загрузки страниц для сканирования.

  3. если вы используете DOM / XPath, это можно выполнить в 3 строчки кода.

...