前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GitHub上超9Kstars的Python爬虫项目——pyspider(国人编写)

GitHub上超9Kstars的Python爬虫项目——pyspider(国人编写)

作者头像
小歪
发布2018-04-04 14:24:29
3.5K0
发布2018-04-04 14:24:29
举报
文章被收录于专栏:Python爬虫与算法进阶

A Powerful Spider(Web Crawler) System in Python

简介

PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。

特性

  • python 脚本控制,可以用任何你喜欢的html解析包(内置 pyquery)
  • WEB 界面编写调试脚本,起停脚本,监控执行状态,查看活动历史,获取结果产出
  • 数据存储支持MySQL, MongoDB, Redis, SQLite, Elasticsearch; PostgreSQL 及 SQLAlchemy
  • 队列服务支持RabbitMQ, Beanstalk, Redis 和 Kombu
  • 支持抓取 JavaScript 的页面
  • 组件可替换,支持单机/分布式部署,支持 Docker 部署
  • 强大的调度控制,支持超时重爬及优先级设置
  • 支持python2&3

安装

代码语言:javascript
复制
pip install pyspider

启动环境

安装完成后运行以下命令运行pyspider程序

代码语言:javascript
复制
pyspider

注意:pyspider命令默认会以all模式运行所有的组件,方便调试。作者建议在线上模式分开部署各各组件,详情请查看部署章节

运行成功后用浏览器打开 http://localhost:5000/ 访问控制台

编写脚本

在web控制台点create按钮新建任务,项目名自定义。本例项目名为test。

保存后打开代码编辑器(代码编辑器默认有简单的实例代码)

右侧就是代码编辑器,以后可以直接在这添加修改代码。本实例就直接使用以自带的代码吧。代码如下

代码语言:javascript
复制
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2015-10-08 12:45:44
# Project: test

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)

    @config(priority=2)
    def detail_page(self, response):
        return {
            "url": response.url,
            "title": response.doc('title').text(),
        }

执行任务

  • 当您完成脚本编写,调试无误后,请先保存您的脚本!然后返回到控制台首页。
  • 直接点击项目状态status那栏,把状态由TODO改成debug或running。
  • 最后点击项目最右边那个RUN按钮启动项目。

案例分享

pyspider 爬虫教程(一):HTML 和 CSS 选择器 pyspider 爬虫教程(二):AJAX 和 HTTP pyspider 爬虫教程(三):使用 PhantomJS 渲染带 JS 的页面 pyspider爬京东商品信息案例分享 巧用send_message提高pyspider的抓取速度及避免被封IP 如何把采集结果存入mysql

在线使用Dashboard - pyspider

看到国人自己写的爬虫框架,一点也不别Scrapy差,你说呢

其实我在想,能不能自己写个框架出来:)

Pyspider binux/pyspider 官方文档 pyspider

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与算法进阶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 特性
  • 安装
  • 启动环境
  • 编写脚本
  • 执行任务
    • 案例分享
    相关产品与服务
    云数据库 Redis
    腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档