pyspider README

The project's README from github.com/binux/pyspider. As one markdown file: README.md.

pyspider Build Status Coverage Status

A Powerful Spider(Web Crawler) System in Python.

Tutorial: http://docs.pyspider.org/en/latest/tutorial/
Documentation: http://docs.pyspider.org/
Release notes: https://github.com/binux/pyspider/releases

Sample Code

from pyspider.libs.base_handler import *


class Handler(BaseHandler):
    crawl_config = {
    }

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl('http://scrapy.org/', callback=self.index_page)

    @config(age=10 * 24 * 60 * 60)
    def index_page(self, response):
        for each in response.doc('a[href^="http"]').items():
            self.crawl(each.attr.href, callback=self.detail_page)

    def detail_page(self, response):
        return {
            "url": response.url,
            "title": response.doc('title').text(),
        }

Installation

WARNING: WebUI is open to the public by default, it can be used to execute any command which may harm your system. Please use it in an internal network or enable need-auth for webui.

Quickstart: http://docs.pyspider.org/en/latest/Quickstart/

Contribute

TODO

v0.4.0

License

Licensed under the Apache License, Version 2.0

pyspider (binux/pyspider)

Searching Database…

16.8K ·GitHub
archived
Что это такое?pyspider — это мощная система веб-краулинга (сбора данных с сайтов), написанная на Python: вы пишете скрипты обхода на Python и управляете своими проектами через встроенный веб-интерфейс.
Это библиотека, которую я подключаю в свой код, или программа, которую я запускаю?Программа, которую вы запускаете — это полноценная система краулинга со своим WebUI, а не библиотека. Логика обхода сайтов живёт в Python-скриптах, которые система сама выполняет, планирует и отслеживает за вас.
Как его запустить?Установите его командой 'pip install pyspider', запустите команду 'pyspider' и откройте WebUI в браузере. В репозитории также есть Dockerfile.
Нужно ли мне настроить базы данных или очереди сообщений перед использованием?Для быстрого старта — нет, но при больших объёмах она подключается к MySQL, MongoDB, Redis, SQLite, Elasticsearch или PostgreSQL (через SQLAlchemy) для хранения данных, а в качестве очереди сообщений использует RabbitMQ, Redis или Kombu.
Есть ли подводные камни, прежде чем я открою панель управления наружу?Да — WebUI по умолчанию открыт для всех, и через него можно выполнить произвольные команды, способные навредить вашей системе, поэтому держите его во внутренней сети или включите опцию need-auth для WebUI.
Что я могу делать через WebUI?Писать и редактировать скрипты краулера, следить за выполняющимися задачами, управлять проектами и смотреть собранные результаты — весь процесс обхода сайтов происходит прямо в браузере.
Может ли он обрабатывать страницы, которые используют JavaScript?Да — обход JavaScript-страниц заявлен в числе его основных возможностей, так что он не ограничен статичным HTML.
Как он справляется с повторами и повторными обходами?Задачи поддерживают приоритеты, повторы при сбоях, запуск по расписанию и повторный обход страниц с учётом их возраста, так что результаты можно поддерживать актуальными, не переписывая скрипты.
Масштабируется ли он за пределы одной машины?Да — у него распределённая архитектура, поэтому краулеры могут работать на нескольких машинах; для больших нагрузок подключите к нему очередь сообщений и масштабируемую базу данных.
Creator
binux
Size
4.1 MB
Stars
16.8K
Age
12y
Commits · 90 Days