借助 scrapy-redis 实现 scrapy 分布式爬虫

最原始的 Scrapy 项目是只能将爬虫部署到单机上,如果要实现分布式爬虫就需要手动去维护一个待抓取的列表,那么 scrapy-redis 项目就是这样一个存在。 特性: 分布式抓取,可以部署多个 spider 实例,共享同一个 redis 队列 分布式后处理,抓取的内容会放到一个队列中,这样就意味可以开启足够多的实例来处理结果 提供了即插即用的组件,包括定时,去重,等等 Scrapy 的局限 Scrapy 已经能够满足大部分爬虫的需要,但是有一些场景 Scrapy 并不适用。 对于页面数量比较少的站点,并不需要 Scrap Read more ...


Linux 安装 VMware workstation 12

VMware Workstation 12 虚拟机,适用于 RHEL/CentOS 7, Fedora 20-24, Debian 7-9, Ubuntu 16.04-14.14 and Linux Mint 17-18. Prerequisites 确保系统 64 位 VMware 12 不支持 32 位 CPU 确保有 root 权限 安装 更新 apt-get update && apt-get upgrade # On Debian Systems 下载 wget 'http://www.vmwa Read more ...


在 Python 中使用 redis 作为任务队列 Python RQ 使用

在学习 Flask 时接触 flask-rq2,然后知道了 python-rq 因为之前使用过 Celery ,所以对 python-rq 倒也没有多大的困惑。因为 python-rq 只依赖于 redis,相较于 Celery 轻量很多,如果在 Flask 中不需要非常繁重的后台任务队列(比如只有发送注册邮件任务)可以考虑使用 python-rq,毕竟有 flask-rq2 为 Flask 度身定做,结合 Flask 要比 Celery 容易很多。 RQ (Redis Queue) is a simple Python library for Read more ...

2017-04-25 python , redis , queue , python-rq , flask-rq2

每天学习一个命令:tcpdump 命令行下抓包

tcpdump 是一个运行在命令行下的抓包工具,如果想知道网络中有什么在流通,那么 tcpdump 就是一个很好的工具。它允许用户拦截和显示发送或收到过程中网络连接到该计算机的 TCP/IP 和其他数据包。tcpdump 适用于大多数的类 Unix 系统操作系统(如 Linux,BSD 等)。类 Unix 系统的 tcpdump 需要使用 libpcap 这个捕捉数据的库就像 Windows 下的 WinPcap。 tcpdump 可以识别的协议有: ARP RARP ICMP TCP UDP IP IPv6 App Read more ...

2017-04-23 tcpdump , linux , network

Scrapy 学习笔记及简单使用

Scrapy 是纯 Python 实现的爬虫框架(scraping and crawling framework),可以非常轻松地提取网页结构信息。最初设计时 Scrapy 仅仅作为网页抓取工具,但因其功能强大,配置简单,逐渐的被扩大使用范围,也经常被用于以下方面: 数据挖掘 Data Mining 信息处理 information processing 历史信息存储 historical archival 检测及自动化测试 monitoring and automated testing 因为网上的教程已经非常详细了,这里就重点 Read more ...

2017-04-23 scrapy , python , crawler , spider , 学习笔记

使用 pyenv 管理 Python 版本

记录一下使用过程,留备以后使用。 pyenv 是 Python 版本管理工具。 pyenv 可以改变全局的 Python 版本,在系统中安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments 。所有的设置都是用户级别的操作,不需要 sudo 命令。 pyenv 的一个典型使用场景就是,比如一个老项目需要使用 Python 2.x ,而另一个新项目需要 Python 3.x 。而 virtualenv 主要是用来管理相同版本 Python 不同项目的包的依赖不同的问题, Read more ...

2017-04-22 python , pyenv , 经验总结 , dev

Redis 常用命令

Redis 是典型的 KV 数据库,通常所说的 Redis 数据结构指的是 Value 的数据结构,常用的数据结构有 String, Hash, List, Set, Sorted Set. 前三种类型不用多讲,几乎每种语言都存在,后两种 set 是单纯的集合, Sorted Set 是有序集合,在集合内可以根据 score 进行排序。Redis 的命令不区分大小写,但通常情况下使用大写以示区分。 几个常用网址: https://redis.io/commands https://redis.io/documentation 中文命令 Read more ...


Redis 介绍

Redis (Remote Dictionary Server) 是由 Salvatore Sanfilippo(antirez) 开发的开源数据库,基于内存的 Key-Value 类型的 NoSQL 。目前在 DB Engines Ranking K-V 数据库中排行第一 1。 Redis 是 REmote DIctionary Server 远程字典服务的缩写,他以字典结构存储数据,并允许其他应用通过 TCP 协议来读写字典中的内容。 Redis 支持很多的特性: 所有数据存放在内存中 支持数据持久化:AOF 和 RDB 两种类型 Read more ...

2017-04-20 redis , database , nosql , 学习笔记

每天学习一个命令:df 查看磁盘剩余空间

之前也介绍过 di disk information,不过系统默认不带,需要自己安装,如果遇到没有权限安装时,就可以使用 df 来查看当前机器剩余磁盘空间。 df 全称 disk filesystem,用于显示 Linux 系统磁盘利用率,通常也用来查看磁盘占用空间。 命令格式 df [OPTIONS] [FILE] 直接使用不加任何参数会显示所有当前被挂载的文件系统的可用空间。默认会以 1KB 为单位显示。 选项: -a 全部文件系统列表 -h 方便阅读方式显示 -H 等于“-h”,但是计算式,1K=1000 Read more ...

2017-04-12 linux , df , disk , 磁盘空间 , command

Celery 使用介绍

Celery 简单来说就是一个分布式[[消息队列]]。简单、灵活且可靠,能够处理大量消息,它是一个专注于实时处理的任务队列,同时也支持异步任务调度。Celery 不仅可以单机运行,也能够同时在多台机器上运行,甚至可以跨数据中心。 Celery 中比较关键的概念: worker: worker 是一个独立的进程,任务执行单元,它持续监视队列中是否有需要处理的任务; broker: broker 消息传输中间件,任务调度队列,接收生产者发出的消息,将任务存入队列,broker 负责协调客户端和 worker 的沟通。客户端向队列添加消息,bro Read more ...

2017-04-10 celery , python , queue , task , distribution

最近文章

  • Headroom:让 AI Agent 少花冤枉钱的上下文压缩工具 最近一段时间我在深度使用 [[Claude Code]] 做开发工作,用得越多,账单就越触目惊心。一次稍微复杂一点的任务,比如让它读取几个文件、搜索一下代码、跑一下测试,轻轻松松就能烧掉超过 100K 的 Token。更让人无奈的是,这 100K 里面有相当大一部分是重复冗余的内容——工具调用的输出、日志、搜索结果,它们被原封不动地塞进上下文,再一次次地发给模型,而模型其实只需要其中很小一部分关键信息。
  • Surfingkeys:比 Vimium 更强大的浏览器键盘控制扩展 最早接触 [[Vimium]] 是在学习 Vim 编辑器之后,那种能用键盘完全控制浏览器的感觉确实让人着迷。不用频繁移手到鼠标,链接跳转、页面滚动、标签切换全用键盘搞定,效率提升的体验是实实在在的。用了几年 Vimium 之后,我开始接触到 [[Surfingkeys]],起初以为不过是另一个同类扩展,但深入用下来才发现这两者的差距远比我想象的大。
  • Denote 介绍 Emacs 下基于文件名的笔记系统 最近在 GitHub 上闲逛的时候,我发现了 [[李继刚]] 整理的一批 [[Claude Skills]],出于好奇就 clone 下来翻了翻仓库。打开目录一眼扫过去,几乎所有 Skill 输出的文档文件名都长得很特别,大致是这样的形式: 20260527162000==z--投资分析-ajinomoto-2802。这种带着长串数字时间戳、夹杂 == 和 – 分隔符的写法,一眼看上去既不像我熟悉的 [[Jekyll]] 那种 YYYY-MM-DD-title.md,也不像 [[Obsidian]] 里常见的中文标题直接做文件名,反而有种”工程化”过头的味道。
  • Ghostty 和 xterm-ghostty 是什么 最近我在 macOS 上重新整理终端工具链的时候,又一次认真看了 [[Ghostty]]。很多人第一次接触 Ghostty,会先被它的界面、速度或者作者背景吸引,但只要打开 Shell 跑一个 echo $TERM,很快就会看到一个更陌生的名字:xterm-ghostty。这个名字看起来像是传统 xterm 的变种,实际上它背后代表的是 Ghostty 对终端兼容性的一整套设计思路。很多人把它当成一个无关紧要的环境变量,但如果你经常使用 [[SSH]]、[[tmux]]、[[Vim]]、[[Neovim]]、[[less]] 或者各种 TUI 工具,理解 xterm-ghostty 会让你少踩很多坑。
  • 终端开发的新范式:从 Gemini CLI 到 Antigravity CLI 终端智能体的新旅程