Очень простой php парсер
Не в первый раз ко мне обращаются с вопросом как распарсить/сграбить то или сё.
Плагиат — дело конечно не доброе, но порой необходимое.
Для примера рассмотрим задачу воровства кейводров 🙂
По хорошему кеи добываются приблизительно так (если конечно не покупать готовую базу) — сначала грабим с какого нить подходящего ресурса (вордтрекер, увертюра и т.д. для англоязычных кеев) (директ, майл для русскоязычных) в глубь — это поисковые запросы с указанным кеем 2х, 3х словники и в ширь — это кеи синонимы или просто кеи, которые часто ищут вместе с исходым. Потом вся эта куча (либо только однословник) чекается на биды и возможно конкуренцию. Ненужное выкидываем, по остальному лепим доры.
Но можно пойти и другим путём — ищем дор, а лучше сетку доров. И распарсиваем уже готовые коммерческие кеи 🙂 Как то делать было нечего — за день работы с разных сеток скоммуниздил 500 тыс уникальных русских кеев. Ру доры конечно же лучше искать в Раме 🙂
Ну и скриптик в студию:
<?php
//error_reporting(E_ALL); // врубал дя отладки
set_time_limit(0); // чтоб успело дограбить всё
ignore_user_abort(); // грабить не смотря на ошибки клиента
fp = fopen(«./keys.out»,»w+»); // складываем награбленное в keys.out
for($i=0;true;$i++) { //цикл для счётчика паг
$buf = file(‘http://xxxxxxx.ru/?p=’.$i); // конкретный дор я решил не светить
preg_match(«!\<title\>(.*?)\<\/title>!ism»,$buf[3],$match); // кей в данном случае сидел только в тайтле, причем в анкорах внутренних линков кеев не было 🙂
$key = trim($match[1],» \r\n\t»); //режем переводы строк и прочую хуйню
echo $i.» «.$key; flush(); //выводим на экран процесс грабинга (можно убрать), в принципе нужно только для начала — как только процесс пошел браузер можно закрывать
if (empty($key)) break; // условие останова (для этого конкретного дора)
fputs($fp,$key.»\n»); // пишем в файл выдранный кей
}
fclose($fp); // закрываем файл?>
Скрипт я привел Очень простой — так сказать «5ти минутка» — ни обработки ошибок, ни через проки (на случай если не дают с одного айпишника грабить), ни многопоточный (если нужна максимальная скорость) даже пагу и ту через file дёргаю (по идее после получения кея дальше сокет можно закрывать). Чисто дёрнуть дор или ещё чего нибудь — для промышленного парсинга данный скрипт явно не подойдет. Вообще имхо, для промышленного, нужно на сях писать — и быстро и память не жрет и с многопоточностью всё в порядке (хотя в былые времена, когда шпамилок еще не продавали, мой скриптик-шпамила довольно шустро и на php работал).
Если интересно можно будет поднакрутить до многопоточности и работы через прокси 🙂
Ну и конечно не забываем, что приведенный скрипт не универсален — под каждую задачу затачиваем уже сами (формат страниц, выдирание нужного контента и т.д.)
P.S.
Кстати сегодня с новой офлайн работы первый раз на свой сервачек цеплялся — возникли каки то непонятные проблемы с пробросом фтп трафика — решил сильно не заморачиваться (разберусь как время будет)- поставил SFTPDrive — очень забавная софтина — в винду по ssh протоколу мапит виртуальный драйв с сервака — если не нужно расшаривать доступ нескольким юзерам (работаешь на серваке монопольно) то имхо — очень удобно! ФТП сервак на машинке вообще поднимать и настраивать не нужно !
И, на последок, пару рекламных ссылочек:
- Производим срочный выкуп квартир за короткие сроки.
- Поможем срочно продать квартиру в Москве через агентство.
И для подтверждения авторства моего блога, секретный код: 2004163.53afaf17fa3bb99abb5f0a8b9a97fe6a.1210728395.d4c9e1895936ca00a60a1aedf7f8b9d1
рубрики: SEO, Полезности, Программирование | 36 комментариев