grab-site 使用教程
1. 项目介绍
grab-site 是一个易于配置的网页爬虫,旨在备份网站内容。用户只需提供一个 URL,grab-site 会递归地爬取整个站点,并生成 WARC 文件。该项目基于 wpull 项目的一个分支,并提供了丰富的功能,包括:
- 实时 Dashboard 显示爬取进度
- 运行中添加忽略模式
- 预设的忽略集合,适用于论坛、Reddit 等
- 重复页面检测
- 磁盘存储 URL 队列,支持大规模爬取
2. 项目快速启动
以下是在 Ubuntu 18.04、20.04、22.04、Debian 10 (buster)、Debian 11 (bullseye) 上安装和启动 grab-site 的步骤:
安装依赖
sudo apt-get update
sudo apt-get install --no-install-recommends \
wget ca-certificates git build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev libffi-dev libxml2-dev \
libxslt1-dev libre2-dev pkg-config
安装 Python 3.8 和 grab-site
wget https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer
chmod +x pyenv-installer
./pyenv-installer
~/.pyenv/bin/pyenv install 3.8.15
~/.pyenv/versions/3.8.15/bin/python -m venv ~/gs-venv
~/gs-venv/bin/pip install --no-binary lxml --upgrade git+https://github.com/ArchiveTeam/grab-site
配置环境变量
将以下内容添加到 ~/.bashrc
或 ~/.zshrc
:
PATH="$PATH:$HOME/gs-venv/bin"
重启终端或打开新的终端窗口。
启动 Dashboard
gs-server
在浏览器中访问 http://127.0.0.1:29000/
查看 Dashboard。
开始爬取
grab-site 'URL'
替换 'URL'
为实际的网站地址。
3. 应用案例和最佳实践
爬取大型网站
对于有大量页面的大型网站,可以使用以下命令来避免内存不足的问题:
grab-site --max-depth 10 'URL'
忽略特定 URL
在爬取过程中,可以动态添加忽略模式来跳过特定的 URL:
grab-site --ignore 'pattern' 'URL'
并发爬取
使用 tmux
或其他终端管理器,可以同时启动多个爬取任务:
tmux new-session -s grab1 'grab-site "URL1"'
tmux new-session -s grab2 'grab-site "URL2"'
4. 典型生态项目
grab-site 是 ArchivalTeam 的一个项目,它是开源社区中用于网站存档和备份的重要工具之一。以下是与 grab-site 相关的一些生态项目:
- wpull:grab-site 内部使用的爬虫工具
- arkив:一个用于自动化备份网站的网络爬虫
- commoncrawl:Common Crawl 的开源爬虫代码
请注意,以上项目名称仅为示例,实际项目链接和描述可能有所不同。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考