A Powerful Spider(Web Crawler) System in Python.
pyspider [![Build Status]][Travis CI] [![Coverage Status]][Coverage] ========
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...
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
pip install pyspider- run command
pyspider, visit http://localhost:5000/
need-auth for webui.
Quickstart: http://docs.pyspider.org/en/latest/Quickstart/
Contribute
- Use It
- Open [Issue], send PR
- [User Group]
- ไธญๆ้ฎ็ญ
TODO
v0.4.0
- [ ] a visual scraping interface like portia
License
Licensed under the Apache License, Version 2.0
[Build Status]: https://img.shields.io/travis/binux/pyspider/master.svg?style=flat [Travis CI]: https://travis-ci.org/binux/pyspider [Coverage Status]: https://img.shields.io/coveralls/binux/pyspider.svg?branch=master&style=flat [Coverage]: https://coveralls.io/r/binux/pyspider [Try]: https://img.shields.io/badge/try-pyspider-blue.svg?style=flat [Issue]: https://github.com/binux/pyspider/issues [User Group]: https://groups.google.com/group/pyspider-users