Архив метки: парсер

Huginn, Yahoo Pipes, Habr и фид ленты комментариев

Huginn Agent event flow

Понадобилось мне получать с Хабра ленту комментариев пользователя в каком-то удобном виде, чтобы не заходить периодически на сайт для проверки её обновления. Очевидное решение – RSS.

В базе Хабр позволяет подписаться на профиль пользователя, или, по RSS, на ленту его публикаций. А вот для комментариев подобной возможности не предусмотрено (сама лента комментариев имеет вид https://habr.com/ru/users/user-name/comments/).

Первая мысль – воспользоваться Yahoo Pipes, ведь когда-то уже использовал его для решения подобных задач. Увы – оказалось, что сервис давно закрыт. Помолчим минуту (он был хорош!) и рассмотрим доступные альтернативы.

Читать далее Huginn, Yahoo Pipes, Habr и фид ленты комментариев

Парсинг Яндекс ТИЦ на примере списка пользователей ЛиРу

В заметке рассмотрено использование многопоточного парсера Яндекс ТИЦ на примере обработки списка пользователей ЛиРу (Liveinternet). Для запуска понадобятся: bash (под Windows можно использовать cygwin), perl, wget и, для большего удобства представления результатов, – sort. Все эти утилиты присутствуют практически в любой *nix-ОС или могут быть установлены в cygwin.

Читать далее Парсинг Яндекс ТИЦ на примере списка пользователей ЛиРу

Сохранение статистики внешних входящих ссылок из Яндекс.Вебмастер

Решил ради интереса посмотреть статистику изменения количества входящих внешних ссылок (и ссылаюшихся сайтов) через Я.Вебмастер – и с удивлением не обнаружил в нем такой возможности. Может быть “Выгрузка внешних ссылок в виде архива” – то, что мне нужно, но формирования архива придется ждать неделю и только потом можно будет узнать, что же в нем.

Запрос через Яндекс-поиск с ключом link (вида http://yandex.ru/yandsearch?text=link%3D%22dimio.org%2F*%22&lr=2) выдает сильно отличающийся от вывода Я.Вебмастер результат. Интернеты вообще сообщают, что ключ link не поддерживается Яндексом уже несколько лет.

Оставалось только одно – забирать интересующую информацию прямо со страницы из Вебмастера. Сделал небольшой скрипт на perl, который и решает поставленную задачу. Скрипт целиком доступен на отдельной странице, в заметке остановлюсь подробнее только на паре моментов.
Читать далее Сохранение статистики внешних входящих ссылок из Яндекс.Вебмастер

Ответы@Mail.Ru – мечта спамера

С удивлением заметил, что e-mail адреса пользователей сервиса “ответы” на mail.ru хранятся в коде страниц в открытом виде, как на заре интернетов прямо. Никаких попыток скрыть адреса – даже странно в наше время. Можно легко и непринуждённо сграбить базу email для дальнейшего брутфорса паролей к ним или например спама (поскольку на сервисе есть категории – вероятно и целевую аудиторию можно прикинуть по ним).

В общем всё делается предельно примитивно, в старом добром шелле, без разных модных многопоточных грабберов из облака (для брутфорса кстати облако наверное очень интересным может быть):

wget -q -O - http://otvet.mail.ru/open/?pg={1..10} | grep -ioE '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' | sort -ui >> ./otveti_email.txt

Как видно из примера – я сграбил для проверки первые 10 страниц открытых ответов получив в итоге 197 уникальных адресов, сохраненных в файл с email-адресами. В принципе, для скорости и удобства можно каждую категорию в отдельном процессе выкачивать, с сортировкой результатов уже после загрузки, непосредственно из файла.

Напоследок ссылка для тюнинга регулярки под grep по поиску email-адресов.

UDP: Под катом для примера выложил простой скрипт на bash, который парсит некоторые страницы раздела “Компьютеры и интернет” с Ответы@Mail.ru и раскладывает полученные e-mail адреса по категориям. Его несложно дополнить всё теми же штатными средствами оболочки чтобы автоматически обходить дерево разделов и парсить e-mail адреса из всех категорий.

Читать далее Ответы@Mail.Ru – мечта спамера

Сравнение производительности сетевых библиотек в Perl

Когда задумал сделать парсер тИЦ для LJ Add/Remove Fiends – решил для начала проверить, какой способ загрузки страниц с показателями тИЦ из скрипта окажется быстрее, поскольку это в любом случае окажется самым узким местом в производительности парсера (любая обработка уже полученных данных, если она сделана без грубых ошибок типа бесконечного цикла, происходит гораздо быстрее загрузки этих данных по сети).

Для начала проверил на локальной машине (первый тест), затем на сервере (второй тест). Воспользовался модулем Benchmark::Timer, по сути он ставит метки начала и конца, после чего вычисляет разницу между ними (то же самое несложно получить с использованием Time::HiRes). У Benchmark::Timer правда есть дополнительная возможность – он может гонять тест до получения результата с заданной обеспеченностью и заданным процентом ошибки.

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

Выводы – библиотеки Perl не только выгодней с точки зрения безопасности, но и работают стабильно быстрее вызовов системных утилит. Самую медленную загрузку показал Wget, основывать парсер на нём – явно плохая идея. Многопточность естественно вне конкуренции. Подробности ниже.

Читать далее Сравнение производительности сетевых библиотек в Perl

Анонимайзер как замена прокси. Проверка анонимайзеров на валидность

Скрипт для составления и проверки списка веб-прокси

Наткнулся на любопытную заметку под названием “И еще немного про Google Hack“, в которой автор описывает использование анонимайзеров (пример анонимайзера – сайт Anonymouse) вместо публичных прокси для обхода капчи в Google.
Такой способ использования анонимайзеров мне тоже приглянулся и я решил написать свой скрипт для сбора и проверки на валидность списка публичных веб-прокси.

Читать далее Анонимайзер как замена прокси. Проверка анонимайзеров на валидность

Каталог аккумуляторов с avtoakkumulator.ru

Выкачивал для своих нужд каталог автомобильных аккумуляторов по производителям с сайта avtoakkumulator.ru – выкладываю, может кому-то для чего-нибудь понадобится: скачать каталог avtoakkumulator.ru

Выглядит выгруженный каталог следующим образом:
[code=”xml”]



80

700
750
440

278*175*190
<Исполнение днищевой планки>выступ с 4 сторон
<Напряжение>12 В
<Полярность>универсальная полярность
<Расположение клемм>утопленные
<Тип клемм>комбинированные

[/code]

Пользуйтесь, кому нужно 🙂
P.S. При необходимости “почистить” теги XML от пробелов и другого мусора – см. ниже.
Читать далее Каталог аккумуляторов с avtoakkumulator.ru

Парсер базы nakolesah.ru

Грабим nakolesah.ru
Пример работы парсера сайта nakolesah.ru

Уф, докрутил парсер nakolesah до вменяемого состояния и сграбил подбор шин по автомобилю. Кому интересно – ссылка на сам скрипт в конце поста.

Что-то в нём ещё буду менять, не очень мне нравится логика работы нынешняя, основанная на GET-запросах (тогда как браузер получает всю информацию, обращаясь к asp-скрипту с передачей разных параметров в POST-запросе). У меня POST только в конце, а надо бы попробовать работу браузера полностью скопировать, да времени особо не было разбираться.

Читать далее Парсер базы nakolesah.ru

Парсер-граббер nakolesah.ru

Был занят в свободное (от основной работы) время – делал халтуру, которая заключалась в просьбе написать парсер, чтобы сграбить структуру подбора колёс по автомобилю с сайта nakolesah.ru (естественно, на языке perl).
И вот сегодня он готов (начал в минувшее воскресенье) и проходит тестирование у заказчика. Приятно то, что это первый случай, когда моё хобби принесло небольшую денежку (которую я потрачу на другое хобби – охоту 🙂 ).
Читать далее Парсер-граббер nakolesah.ru