综合 网络数据抓取神器 Pipet

2024-11-19 05:43:20 +0800 CST views 735

网络数据抓取神器 Pipet

项目简介

Pipet 是一个基于命令行的网络抓取工具,支持 HTML 解析、JSON 解析和客户端 JavaScript 评估。它依赖于现有工具如 curl,并使用 Unix 管道扩展功能。您可以用 Pipet 跟踪发货情况、获取音乐会门票通知、股票价格变化等信息。

快速开始

创建一个名为 hackernews.pipet 的文件,内容如下:

curl https://news.ycombinator.com/
.title .titleline
  span > a
  .sitebit a

然后运行:

go run github.com/bjesus/pipet/cmd/pipet@latest hackernews.pipet

或者安装 Pipet 并运行:

pipet hackernews.pipet

在终端中查看所有最新的黑客新闻!

安装方式

预建

版本页面 下载最新版本,使用以下命令赋予执行权限:

chmod +x pipet

然后运行:

./pipet

编译

此方法需要安装 Go。使用以下命令安装 Pipet:

go install github.com/bjesus/pipet/cmd/pipet@latest

或者可以运行而无需安装:

go run github.com/bjesus/pipet/cmd/pipet@latest

发行版

Pipet 目前支持 Arch Linux、Homebrew 和 Nix:

brew tap bjesus/pipet && brew install pipet

用法

Pipet 唯一需要的参数是 .pipet 文件的路径,其他命令行标志包括:

  • --json, -j - 输出为 JSON(默认值:false)
  • --template value, -t value - 指定模板文件路径
  • --separator value, -s value - 设置文本输出的分隔符
  • --max-pages value, -p value - 最大抓取页面数(默认值:3)
  • --interval value, -i value - X 秒后重新运行 Pipet
  • --on-change value, -c value - 新结果时运行的命令
  • --verbose, -v - 启用详细日志记录(默认值:false)
  • --help, -h - 显示帮助

Pipet 文件结构

Pipet 文件描述从何处及如何获取数据,包含多个块。以 // 开头的行为注释。每个块包含:

  1. 资源 - 第一行是 URL 和抓取工具
  2. 查询 - 接下来的几行是选择器
  3. 下一页 - 以 > 开头的可选行,描述“下一页”的选择器

示例 Pipet 文件

// Read Wikipedia's "On This Day"
curl https://en.wikipedia.org/wiki/Main_Page
div#mp-otd li
  body
div#mp-tfa > p > b > a

// Get the weather in Alert, Canada
curl https://wttr.in/Alert%20Canada?format=j1
current_condition.0.FeelsLikeC
current_condition.0.FeelsLikeF

// Check how popular the Pipet repo is
playwright https://github.com/bjesus/pipet
Array.from(document.querySelectorAll('.about-margin .Link')).map(e => e.innerText.trim()).filter(t=> /^\d/.test(t) )

项目链接

访问 GitHub 上的 Pipet 项目

复制全文 生成海报 网络抓取 工具 编程 开发

推荐文章

paint-board:趣味性艺术画板
2024-11-19 07:43:41 +0800 CST
Python 微软邮箱 OAuth2 认证 Demo
2024-11-20 15:42:09 +0800 CST
Dropzone.js实现文件拖放上传功能
2024-11-18 18:28:02 +0800 CST
Vue3中如何处理组件的单元测试?
2024-11-18 15:00:45 +0800 CST
ElasticSearch集群搭建指南
2024-11-19 02:31:21 +0800 CST
如何在Vue 3中使用Ref访问DOM元素
2024-11-17 04:22:38 +0800 CST
Graphene:一个无敌的 Python 库!
2024-11-19 04:32:49 +0800 CST
在 Docker 中部署 Vue 开发环境
2024-11-18 15:04:41 +0800 CST
Python 获取网络时间和本地时间
2024-11-18 21:53:35 +0800 CST
Python设计模式之工厂模式详解
2024-11-19 09:36:23 +0800 CST
Golang 中你应该知道的 Range 知识
2024-11-19 04:01:21 +0800 CST
Vue3中的Scoped Slots有什么改变?
2024-11-17 13:50:01 +0800 CST
Nginx 负载均衡
2024-11-19 10:03:14 +0800 CST
PostgreSQL日常运维命令总结分享
2024-11-18 06:58:22 +0800 CST
Golang Sync.Once 使用与原理
2024-11-17 03:53:42 +0800 CST
百度开源压测工具 dperf
2024-11-18 16:50:58 +0800 CST
Nginx负载均衡详解
2024-11-17 07:43:48 +0800 CST
动态渐变背景
2024-11-19 01:49:50 +0800 CST
程序员茄子在线接单