ФорумПрограммированиеPython → Кто чем пользуется для краулинга сайтов и прочих ресурсов?

Кто чем пользуется для краулинга сайтов и прочих ресурсов?

  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 8:54

    Пока вижу двух кандидатов:
    * http://scrapy.org/
    * http://grablib.org/docs/index.html

    Кто и что подскажет?
    adw/0
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 9:07, спустя 13 минут 30 секунд

    adw0rd, Tornado HTTP Client
    Сапожник без сапог
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 9:19, спустя 12 минут 6 секунд

    А последующий разбор документа чем делаешь?
    adw/0
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 9:26, спустя 6 минут 43 секунды


    А последующий разбор документа чем делаешь?
    http://www.crummy.com/software/BeautifulSoup/
    Сапожник без сапог
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 9:33, спустя 7 минут 33 секунды

    Вообщем недостатки (по сравнению со скрапи) Grab:
    # При беглом прочтении документации я не нашел как кастомайзить логгирование, ну то есть там есть log_file/log_dir, а мне хочется в базу класть и потом красиво читать :)
    но так как они по всей видимости юзают logging, то можно свой хендлер впилить (у скраппи http://doc.scrapy.org/en/latest/topics/logging.html)
    # Не нашел такой вкусной штуки как у скрапи: http://doc.scrapy.org/en/latest/topics/shell.html

    http://doc.scrapy.org/en/latest/topics/commands.html
    http://doc.scrapy.org/en/latest/topics/architecture.html
    http://doc.scrapy.org/en/latest/topics/webservice.html
    http://doc.scrapy.org/en/latest/topics/stats.html


    использовал scrapy достаточно продолжительное время, grab понравился больше.
    тому есть множество причин, например скорость парсинга в грабе у меня получается на порядок (!!!) выше. ну и он проще, больше контроля. если скрапи это как бы django в мире парсинга, то grab — это flask ) как-то так.

    на скрапи канешно много всего — всякие фишки для деплоя, получение информации о работе пауков. но мне это (да и обычному программисту) чаще всего не нужно.

    к плюсам граб можно отнести то что он на 100% проверен в деле т.е. бро itforge писал/дописывал зачастую параллельно с какими-то проектам которые на полную использовали функционал библиотеки, поэтому она получилас весьма удобной и продуманной до мелочей.

    http://habrahabr.ru/blogs/python/139435/#comment_4658574 {+++34+++}


    А последующий разбор документа чем делаешь?
    http://www.crummy.com/software/BeautifulSoup/
    фи {+++51+++}
    При беглом прочтении документации я не нашел как кастомайзить логгирование, ну то есть там есть log_file/log_dir, а мне хочется в базу класть и потом красиво читать :)

    с другой стороны файлы это тоже хорошо
    adw/0
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 9:38, спустя 4 минуты 36 секунд

    фи

    а ты чем? я еще особо не смотрел, меня и регулярки устраивают, ты же знаешь меня =)))))

    меня больше многопточный норм клиент интересовал.
    Сапожник без сапог
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 9:41, спустя 2 минуты 58 секунд

    а ты чем?

    да все темже + lxml, вот сейчас и хочу нормальный фреймворк для краулинга

    оба они вкусные Grab и Scrapy


    ps. еще есть http://pyparsing.wikispaces.com/
    adw/0
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 9:42, спустя 42 секунды

    да все темже + lxml

    так soup сейчас юзает lxml || html5 парсер какойто, на выбор)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 9:53, спустя 11 минут

    phpdude, я к тому, что промышленно краулить эти средствами: lxml, bsoup, re - не подходит, получится в итоге свой велотренажер
    мне надо готовую систему, которая бы обеспечивала:
    * логгирование, оповещения
    * мониторинг, статистика
    * удобный парсинг (в том числе конструктор парсера как у скрапи), xpath/re для навигации и разбора строк
    * треды, полный контроль над реквестами/респонсами, куками
    * пуллы задач, статусы задач, коллбеки
    * готовые юниттесты на все это

    это все можно реализовать самому, а можно уже приступать к решению задач и юзать scrapy/grab
    adw/0
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 10:23, спустя 29 минут 54 секунды

    https://github.com/noplay/scrapy-dot для визуализации статистики
    adw/0
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 10:29, спустя 6 минут 37 секунд

    Нашёл имплементации (Item Pipeline) строреджей для скрапи:
    * https://github.com/darkrho/scrapy-redis
    * https://github.com/noplay/scrapy-mongodb

    Надо будет потом сделать для mysql, так как мне надо чтобы спарсенный контент был OneToOne к источнику, а источник будет Item скрапи.
    А может и не надо будет, ещё посмотрим на практике как все будет :) {+++66+++} Вообще можно и на монге оставить, скрещивать через ORM данные не проблема :)
    adw/0
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 10:49, спустя 19 минут 23 секунды

    adw0rd, ааа, я забыл чо ты делаешь :-)

    ну тогда да, тебе проще готовые решения юзать
    Сапожник без сапог
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 5 марта 2012 г. 11:47, спустя 58 минут 16 секунд

    adw0rd,
    1. scrapy уже 4 года, ну или 3.5. Я лично в 2008 году его юзал в продакшене, хоть и матюкался :)
    2. scrapy это целая платформа, как и джанго. Много полезного, много лишнего и видно где можно расшириться.
    3. grub пишет один паренек и походу он не в курсе, что его репа не приватная… Ну ты просто по исходникам пробегись и сразу ветку эту закроешь.

    Если хочешь удобно и с минимальной писаниной то однозначно scrapy.
    Если хочешь по максимуму выжать скорость, то торнадо-клиент+lxml.html рулит походу. Так как scrapy на твистеде, а он при всем уважении, всёже потормознее pycurl будет
    Либо ещё вариант на ум приходит с gevent (но мне не кажется, что будет прям значительно быстрее, при более низком уровне).

Пожалуйста, авторизуйтесь, чтобы написать комментарий!