2014-12-02 4 views
17

Я очень хорошо использовал рамки для веб-скрипирования Scrapy, но недавно я обнаружил, что есть еще одна инфраструктура/система, называемая pyspider, которая, согласно ее странице github, является свежей, активно развитой и популярной.Может ли Scrapy заменить на pyspider?

pyspider страница «s перечисляет несколько вещей, которые поддерживаются вне коробки:

  • Мощный WebUI с редактором сценариев, монитор задач, менеджер проекта и результат просмотра

  • Поддерживаются страницы Javascript!

  • Приоритет задачи, повторить, периодические и повторного просмотра по возрасту или знаков на странице индекса (например, время обновления)

  • Распределенная архитектура

Это те вещи, которые Scrapy сам Безразлично 't предоставить, но, это возможно с помощью portia (для веб-интерфейса), scrapyjs (для js-страниц) и scrapyd (развертывание и распространение через API).

Правда ли, что только pyspider может заменить все эти инструменты? Другими словами, это pyspider - прямая альтернатива Scrapy? Если нет, то какие варианты использования он охватывает?

Надеюсь, я не пересекаю линию «слишком широкую» или «основанную на мнениях».

+1

Это довольно близко к линии, основанной на мнениях. Я не уверен, подумаю ли я об этом. – Amber

+0

@ Спасибо, я беспокоился об этом. Пытался добавить специфику. (по крайней мере, он более подробный и конкретный, чем [стоит ли изучать Scrapy?] (http://stackoverflow.com/questions/6283271/is-it-worth-learning-scrapy)). – alecxe

+0

@Amber Я думаю, у меня есть лучший ответ, который у меня может быть здесь. Binux является изобретателем и разработчиком проекта pyspider. Надеюсь, эта тема станет отправной точкой для тех, кто будет задавать вопросы о различиях между scrapy и pyspider. – alecxe

ответ

23

pyspider и Scrapy имеют ту же цель, что и скребок, но другой взгляд на это.

  • Паук не должен останавливаться до тех пор, пока WWW не погибнет. (Информация меняется, данные обновления на веб-сайтах, паук должен иметь возможность и ответственность скрести последние данные. Именно поэтому pyspider имеет базу данных URL, мощный планировщик, @every, age, и т.д ..)

  • pyspider услуга более чем рамки. (Компоненты работают в изолированном процессе, lite - версия all работает как служба тоже, вам не нужно иметь среду Python, но браузер, все, что касается выборки или расписания, управляется скриптом через API, а не параметры запуска или глобальные конфигурации, ресурсы/проекты управляются pyspider и т. д.)

  • pyspider - это система пауков.(Любые компоненты могут заменены, даже разработан в C/C++/Java или любого языка, для повышения производительности или увеличения мощности)

и

  • on_start против start_url
  • token bucket управления движением против download_delay
  • return json против class Item
  • очереди сообщений против Pipeline
  • встроенный URL базы данных против set
  • Стойкости против В-памяти
  • PyQuery + любой третий пакет, который вы хотели против встроенного CSS поддержки/Xpath

На самом деле, я не отнесенным от Scrapy. pyspider действительно отличается от Scrapy.

Но почему бы и нет try it yourself? pyspider также является fast, имеет простой в использовании API, и вы можете попробовать его без установки.

+0

@Binux: Я бы хотел увидеть новый инструмент для очистки веб-страниц, отличную работу. Но почему бы не python3? Python 2 - это прошлое, поэтому я отказался от Scrapy. – Jedi

+0

@ Jedi. Я больше знаком с python 2.7, а pyspider впервые сделан 2 года назад с помощью python 2.7. Я хочу начать с того, где я больше знаком и сосредоточиться на архитектуре. Я сделаю python 3 поддержанным до v0.5.0 – Binux

+4

Похоже, что вы являетесь автором рекомендуемого инструмента. Это нормально, но можете ли вы добавить полную заметку о раскрытии информации, когда вы это сделаете? – halfer

Смежные вопросы