基于graphql的dom遍历与抓取

gdom的Python项目详细描述


gdom是下一代web解析,由^{tt1}提供支持$ 语法和Graphene framework

在您的控制台中键入安装:

pip install gdom

demoTry GDOM online

用法

您可以执行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查询泛化到任何页面,只需重写 添加$pagevar的查询文件。 这个:

query ($page: String) {
  page(url:$page) {
    # ...
  }
}

然后,像这样查询:

gdom QUERY_FILE http://news.ycombinator.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
反射Java反射:高负载下的NoSuchMethodException   java RxJava:one request>list of Integer>sequence of requests for each int>result to list   java为什么循环之前索引会增加   JavaSpring远程处理和RESTfulURL   java Hibernate搜索仅对我的实体的一部分进行索引   使用DPAD快速滚动时,java RecyclerView onCreateViewHolder调用过多   java将JSON解析到一个表中   java导航抽屉标题textview nullpointerexception   基于接口的Java链接队列   java Guice运行时依赖项参数重新注入   java展平/压缩ZSH中的深度嵌套目录   JavaSpring:Http406此请求标识的资源只能   java如何制作Android启动器图标   Java代码在windows上显示不正确(包含希腊语句子)   使用yourkit进行内存分析所用的java时间   java为什么可以序列化属性而不能序列化对象本身?