Skip to content
This repository was archived by the owner on Jun 10, 2024. It is now read-only.

binux/pyspider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

897891c · Aug 2, 2020
Apr 18, 2017
Mar 6, 2014
Nov 8, 2019
Jul 27, 2020
Jul 27, 2020
Sep 30, 2015
Jan 18, 2015
Mar 15, 2018
Jul 27, 2020
Oct 24, 2019
Nov 16, 2014
Jan 28, 2015
Jul 27, 2020
Nov 14, 2019
Jul 27, 2020
Jul 10, 2016
Jul 27, 2020
Nov 24, 2014
Jul 27, 2020
Jul 26, 2020

Repository files navigation

pyspider Build Status Coverage Status

A Powerful Spider(Web Crawler) System in Python.

  • Write script in Python
  • Powerful WebUI with script editor, task monitor, project manager and result viewer
  • MySQL, MongoDB, Redis, SQLite, Elasticsearch; PostgreSQL with SQLAlchemy as database backend
  • RabbitMQ, Redis and Kombu as message queue
  • Task priority, retry, periodical, recrawl by age, etc...
  • Distributed architecture, Crawl Javascript pages, Python 2.{6,7}, 3.{3,4,5,6} support, etc...

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

  • a visual scraping interface like portia

License

Licensed under the Apache License, Version 2.0