Как написать парсер на php

Как написать парсер на phpЭта статья предназначена не для полнейших новичков. Скорее это сборник практик, которые позволяют лучше организовать.

Сам по себе парсер очень прост, зачастую сложность заключается только в обходе авторизации или вычленении конкретной информации с сайта.

Несколько простых правил:

  • Выделяйте парсер и обработку данных в разные классы.
  • В самом парсере никаким образом не нужно обрабатывать данные, в идеале один метод должен возвращать данные с одной страницы.
  • Обрабатывайте данные после их сбора, но никак не во время парсинга (никакого сохранения данных, пока парсер не получит целостные).

Для парсинга страниц я использую класс PHPQuery. Удобный класс с jquery-like апи к данным. Главный минус — большое потребление памяти и не очень высокая скорость работы. Если критично, можно смотреть в сторону sax и т.п.

Как правило, сам парсер я называю ParserNazvanieSaita, а обработчик — ImportNazvanieSaita.

Общая структура класса Parser:

class Parser
{
public function parseProductPage($url)
{
$page = $this->loadPage($url);
$data = array(
);
return $data;
}
protected function loadPage()
{
return $page;
}
protected function unloadPage($page)
{
pq_unload_document($page);
}
}

Оставить комментарий