使用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