Поиск по блогу

среда, 18 ноября 2009 г.

Парсинг findarticles.com - part 1

Итак, в одном из предыдущих постов (в частности, где описывала парсинг ключевиков), я пообещала рассказать о способе дальнейшего употребления данных, которые мы добыли.

Для этих ключевиков, допустим, нам понадобится собрать статьи, им соответствующие (хотя бы отдаленно). Какие-нибудь, без разницы. Я покажу как это сделать, например, с ресурса findarticles.com. Это агрегатор, он сам тянет материал из всевозможных источников, так что от него не убудет :)

Ставим себе задачу.
Имеем: список ключевиков.
Требуется: получить набор текстовых статей. Дополнительное требование: чтобы в каждой статье было не менее определенного числа символов. Это требование возникло из-за того, что на данном агрегаторе много всякого "мусора", могущего состоять из одной строчки, например. А такого добра нам не надо, сразу отсечем этот вариант.

Рассмотрим алгоритм. Можно представить его в двух формах. Первый вариант - это вариант-монолит. То есть в цикле проходим по ключевикам, по каждому ключевику проходим по страницам, попутно на каждой странице собирая статьи. Этот вариант для парсинга большого ресурса не подходит из-за того, что требует стабильности связи на большое время. К тому же потребуется организовать несколько дополнительных настроек, чтобы при повторном запуске скрипт начал парсить не с самого начала, а с того места, на котором остановился.

Второй вариант - это разбить алгоритм на части. Такой прием я уже иллюстрировала на этом блоге в материалах, где описывала опыт парсинга аватаров. То есть берем слово, делаем запрос, собираем ссылки на статьи, выведенные по этому запросу (проходимся по всем страницам или по определенному количеству страниц, заданному в настройках). Собранные ссылки используем для второго этапа: проходим по полученному списку и парсим статьи.

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

Поделиться