PHP Grabber needed!! :)

Тема в разделе "PHP", создана пользователем whitelex, 28 сен 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. whitelex

    whitelex Постоялец

    Регистр.:
    5 апр 2008
    Сообщения:
    58
    Симпатии:
    3
    Как грабить определенный html код с помощью php у кого-то есть готовый граббер? Хочу прогноз погоды стаскивать и гороскопы к себе на сайт, нужен простенький скрипт я его сам добью под свои нужды.
     
  2. Шуранов

    Шуранов Писатель

    Регистр.:
    26 авг 2008
    Сообщения:
    2
    Симпатии:
    2
    На phpclasses.org достаточно классов с примерами, которые позволяют разбирать HTML. Если религия позволяет, то можно и на Perl, с помощью HTML::TreeBuilder. Достаточно просто, кстати.
     
  3. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
  4. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    можно даже не через сокеты, а просто через file_get_contents. Остается разобраться с регулярными выражениями
     
  5. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Это, конечно, проще всего. Но, например, с HTTPS не разгонишься. Для более быстрого результата начни с CURL, для понимания, как работает общение с сервером - с telnet и сокетов. По регекспам, на этом форуме, есть отличная книга Фридла. Удачи.
     
  6. Zahar

    Zahar

    Регистр.:
    21 мар 2007
    Сообщения:
    248
    Симпатии:
    94
    Все то парни хорошо, но вот я пишу под себя грабер контента и у меня много загвоздок на стадии правильного определения мест сдирания контента. А именно, может кто знает решение, как определить саму статью и сграбить ее а не все подряд вместе с менюхой.
    В общем имеется куча проблем с определением. Я вот пошол по пути определения сначала тега <div> в который самый увестый, потом работаю только с ним. Беру все что в этом теге и также ищу самый увесистый тег <div> или <p>, и от тудаво уже достаю текст сам.
    Все бы хорошо но это тупиковый путь сам понимаю. Я вот думаю а не лутше преобразовать код HTML в XML а потом уже работать с моделью DOM?
    Спарашиваю Вас как опытных, может кто ответит?
     
  7. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Только зачем такой гемор? Хочешь написать граббер под все сайты? Тогда не удивляйся, что 20-90% сграбит чушь.
    Я пользовался(ьзуюсь) preg_math, причём :Dпод каждый сайт свой шаблон. Там пишешь где в сайте контент, где заголовк. Если шаблон не динамический (встретил один раз- каждый день теги менялись местами ) и шаблон составил верно- получишь контент.
    Затем его надо форматировать: часто приходиться убирать ссылки на главную страницу, преведущие статьи, с картинок, исправлять теги шаблона (типа <p class='gы>').
     
  8. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Была та же проблема, только немного в другом контексте. Решается все относительно просто: пишется, так сказать, основной движок, задача которого - упорядочивание, обработка "награбленного" :) и отдача его куда нужно. Чтобы перерабатывать даже динамические шаблоны, процедуры граббинга можно вообще вынести за пределы основного скрипта, тогда изменения алгоритма граббинга отдельного ресурса не коснутся всех остальных. Т.е. на выходе имеем очень гибкий скрипт, который может грабить, практически, что угодно и откуда угодно и подключение источника контента займет минуты.
    Правда есть минус - не программеру с таким скриптом ловить нефиг :)
     
  9. Zahar

    Zahar

    Регистр.:
    21 мар 2007
    Сообщения:
    248
    Симпатии:
    94
    Отвечу сразу - скептиков не буду слушать, когда то и хруммер космосом казался (а когда он появился то оказалось что у неких людишек есть подобное но под никсы и со скоростью в 150 раз большей делает то же), так что давайте не будем - нафик надо, до смерти будешь такое делать, главное пробовать а решение придет внезапно!

    Я понимаю чно задачи парсера и обработкина надо разносить, тут дело в обработчике, т.е. в моделировании полученого контента на предмет полезных данных. Я вот что думаю сделать пока, надо наверное преобразовывать данные в DOM tree, а дальше работать с ним, где то на форуме читал что парень ваше делал скрин сайта с статьей а потом по скрину вычислял относительные точки входа и выхода для парсера контента, звучит как маразм на первый взгляд но у него так и работает грабер, а скептики бы до такого не додумались :).
     
  10. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Почему сразу скептики, ведь не прозвучало ни одной фразы, утверждающей, что вариант с моделью DOM невозможен :)

    Какой маразм? Просто еще одно решение. И может скептики до такого и не додумались бы, но есть одно "но" - у скептиков грабер тоже чудесно грабит :)
     
Статус темы:
Закрыта.