专栏名称: 编程派
Python程序员都在看的公众号,跟着编程派一起学习Python,看最新国外教程和资源!
目录
相关文章推荐
Python中文社区  ·  最后上车机会!ETF/量化券商开户橙哥严选 ·  3 天前  
Python爱好者社区  ·  大模型理论实践.PDF下载 ·  3 天前  
Python中文社区  ·  抢先布局!牛市中的量化打板策略 ·  5 天前  
Python爱好者社区  ·  80个Python数据分析案例.pdf(附代 ... ·  1 周前  
Python爱好者社区  ·  60个拿来即用的Python办公自动化实战( ... ·  1 周前  
51好读  ›  专栏  ›  编程派

为什么会有 pysipder?

编程派  · 公众号  · Python  · 2017-04-10 12:05

正文

pysipder 是一个很受欢迎的爬虫库,而且还是国人开发的。不看不知道,一看吓一跳。本文是该库的作者写的一篇介绍,说明了为什么会出现 pysipder。

作者:binux

原文:https://binux.blog/2014/11/introduction-to-pyspider/

缘起

pyspider 来源于以前做的一个垂直搜索引擎使用的爬虫后端。

我们需要从200个站点(由于站点失效,不是都同时啦,同时有100+在跑吧)采集数据,并要求在5分钟内将对方网站的更新更新到库中。

所以,灵活的抓取控制是必须的。同时,由于100个站点,每天都可能会有站点失效或者改版,所以需要能够监控模板失效,以及查看抓取状态。

为了达到5分钟更新,我们使用抓取最近更新页上面的最后更新时间,以此来判断页面是否需要再次抓取。

可见,这个项目对于爬虫的监控和调度要求是非常高的。

主要特性

  • python 脚本控制,可以用任何你喜欢的html解析包(内置 pyquery)

  • WEB 界面编写调试脚本,起停脚本,监控执行状态,查看活动历史,获取结果产出

  • 支持 MySQL, MongoDB, SQLite

  • 支持抓取 JavaScript 的页面

  • 组件可替换,支持单机/分布式部署,支持 Docker 部署

  • 强大的调度控制

由于功能太多,更多请参考脚本编写指南。

感谢 +PhoenixNemo 提供的VPS,提供了一个 demo: demo.pyspider.org。无需安装即可体验。

脚本样例

  1. from libs.base_handler import *

  2. class Handler(BaseHandler):

  3.    '''

  4.    this is a sample handler

  5.    '''

  6.    @every(minutes=24*60, seconds=0)

  7.    def on_start(self):

  8.        self.crawl('http://scrapy.org/', callback=self.index_page)

  9.    @config(age=10*24*60*60)

  10.    def index_page(self, response):

  11.        for each in response.doc('a[href^="http://"]').items():

  12.            self.crawl(each.attr.href, callback=self.detail_page)

  13.    def detail_page(self, response):

  14.        return {

  15.                "url": response.url,

  16.                "title": response.doc('title').text(),

  17.                }

例如这就是创建任务后默认生成的一个脚本示例。

通过 on_start 回调函数,作为爬取的入口点,当点击主面板上的 run 的时候,就是调用这个函数,启动抓取。

self.crawl 告诉调度器,我们需要抓取 'http://scrapy.org/' 这个页面,然后使用 callback=self.index_page 这个回调函数进行解析。

所有 return 的内容默认会被捕获到 resultdb 中,可以直接在 WEBUI 上看到。


题图:pexels,CC0 授权。

点击阅读原文,查看更多 Python 教程和资源。

推荐文章
Python中文社区  ·  最后上车机会!ETF/量化券商开户橙哥严选
3 天前
Python爱好者社区  ·  大模型理论实践.PDF下载
3 天前
Python中文社区  ·  抢先布局!牛市中的量化打板策略
5 天前
Python爱好者社区  ·  60个拿来即用的Python办公自动化实战(附源码)
1 周前
知乎日报  ·  小事 | 无论如何都要回家
7 年前
传感器技术  ·  3D成像:光学的再次创新
7 年前