суббота, 27 декабря 2008 г.

Парсим поисковую выдачу

[u-bum]

с помощью AGGRESS Parser

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

Очень не хотелось использовать парсеры заточенные под определенный поисковик. Посему порыскав по просторам глобальной сети, наткнулся на совершенно бесплатный парсер AGGRESS Parser.

Люди его хвалят, единственный минус - нету нормального мануала по использованию тулзы. Но где наша не пропадала, и не в таком разбирались.

Отдав некоторую часть своего времени, я разобрался с данным парсером. В идеале AGGRESS Parser'ом можно парсить все что душе угодно. Главное создать корректный конфиг-файл заточенный под нужную выдачу поисковика и хочешь гугл парсь, хошь яху с мсн'ом, а хочешь все вместе. Короче автору парсера, как принято в этих случаях говорить, респект и уважуха. Тулза действительно получилась универсальная.

На момент написания данного поста последнюю версию чудо-парсера можно скачать здесь.

Итак, опишу вкратце свои телодвижения.

Допустим нам надо напарсить ссылок в MSN, к примеру, с edu-шников по шибко хитрому запросу "Buy Viagra".

Лезем туда где у нас установлен AGGRESS Parser и в директории search/ создаем файл - edu_msn.txt.

Теперь главное правильно затачиваем конфиг-файл для МСНа, для этого сперва сформируем нужный запрос непосредственно в браузере. У меня получился такой -
http://search.msn.com/results.aspx?q=site:edu+”buy viagra”&count=100.

Затем открываем внутренности самой выдачи и анализируем ее.
Ищем первую ссылку выдачи и смотрим между какими тэгами она находится.

Ага, вот эта ссылка:
<li><h3><a href="http://www.austincc.edu/webdev/wp-content/uploads/thumbs/1/buy-viagra-norway.html" onmousedown="

Далее нужно определить ссылку на следующую страницу выдачи, для этого ищем анкор с текстом «Next» и определяем чем у нас обрамлена нужная ссылка. А обрамлена она у нас вот такой хренью:

<a class=”sb_pagN” href=”/results.aspx?q=site:edu+%22buy%20viagra%22&amp;count=100&amp;first=101&amp;FORM=PORE”>Next</a>

Короче, после всех всех манипуляций у меня получился вот такой конфиг-файл для парсинга:

Url-http://search.msn.com AbsoluteUrl-http://search.msn.com/results.aspx?q=site:.ru+{REQUEST}&count=100 UntilTextAfter-<li><h3><a href="{TEXT}" onmousedown=" UntilNextLinkAfter-class="sb_pagN" href="{NEXTLINK}" Pattern-{TEXT}

Проверяем рабоспособность и убеждаемся что все парсится на ура. Отпарсенную базу сохраняем в файл и используем по назначению. Вроде все просто.

Ж2Ж Постовой!111:
Что-то про верстку, допечатную подготовку, дизайн в эпоху докомпьютерного набора ;)


Реклама в бомжеленте.

Помогите детям!

[http://homelessinbelarus.com/2008/12/parsim-poiskovuyu-vydachu.html]