使用GraphQL进行DOM遍历和抓取
项目描述
GDOM是下一代网络解析工具,由GraphQL语法和Graphene框架驱动。
在控制台中输入以下命令进行安装
pip install gdom
演示: 在线尝试GDOM
用法
您可以使用gdom --test启动测试服务器以测试查询,或者
gdom QUERY_FILE
该命令将在标准输出(或指定通过--output的其他输出)中写入结果JSON。
您的QUERY_FILE可能看起来像这样
{
page(url:"http://news.ycombinator.com") {
items: query(selector:"tr.athing") {
rank: text(selector:"td span.rank")
title: text(selector:"td.title a")
sitebit: text(selector:"span.comhead a")
url: attr(selector:"td.title a", name:"href")
attrs: next {
score: text(selector:"span.score")
user: text(selector:"a:eq(0)")
comments: text(selector:"a:eq(2)")
}
}
}
}
高级用法
如果您想将gdom查询泛化到任何页面,只需在查询文件中添加$page变量。它应该看起来像这样
query ($page: String) {
page(url:$page) {
# ...
}
}
然后,按照以下方式查询
gdom QUERY_FILE http://news.ycombinator.com