google 发表于 2015-11-23 18:30:29

PySpider──Apache 许可 Python 编写的 JavaScript 开源 Web 爬虫系统

PySpider──Apache 许可 Python 编写的 JavaScript 开源 Web 爬虫系统

PySipder 是一个用 Python 编写的专业开源 Web 爬虫系统。PySipder 采用 Apache v2 许可协议。

主要特点如下:
01、用 Python 编写脚本,可用任何 HTML 解析包 (内置 pyquery),提供强大的 API;
02、强大的 Web UI 界面编写调试/起停脚本、脚本编辑、监控执行状态、项目管理、查看历史记录及结果;
03、支持采用 SQLAlchemy 作后台的数据库,包括:MySQL、MongoDB、Redis、SQLite、PostgreSQL;
04、支持采用 RabbitMQ、Beanstalk、Redis 及 Kombu 作消息队列;
05、支持任务优先级、重试、定期抓取、按时间重新抓取等;
06、分布式架构,组件可替换,支持 “单机/分布式” 部署,支持 Docker 部署;
07、支持抓取 JavaScript 页面;
08、支持 Python 2.x & 3.x;
09、强大的调度控制功能;


简单示例代码

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').items():
            self.crawl(each.attr.href, callback=self.detail_page)

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


# 时间 版本 新功能 备注
01 V0.4.0 本地模式,从文件加载脚本;
作为框架进行工作 (所有组件运行在一进程中,而非线程);
支持 redis 数据库;
可视扒取接口,类似可视网站扒取工具 Portia。



版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。

页: [1]
查看完整版本: PySpider──Apache 许可 Python 编写的 JavaScript 开源 Web 爬虫系统