使用xpath/xquery派生工具hquery查询、切片和分割html的命令行工具。

hq的Python项目详细描述


#总部 在命令行进行强大的HTML切片和切割。

[![生成状态](https://travis-ci.org/rbwinslow/hq.svg?branch=master)](https://travis-ci.org/rbwinslow/hq)[![覆盖状态](https://coveralls.io/repos/github/rbwinslow/hq/badge.svg?branch=master)](https://coveralls.io/github/rbwinslow/hq?分支=主)

hq是一个基于python的命令行工具,用于查询html、操作数据并以html、json或任何其他格式生成结果。它是基于一种紧凑的、灵活的表达式语言,它最初是XPath实现,但最终会出现在几个不同的地方,所以我将继续称之为HQuQuy。

hquery 99%符合[xpath 1.0](https://www.w3.org/TR/xpath/)标准,除了一些不适用于html的特性之外。这对于查询很好,但是您需要更多的能力来控制所生成数据的形状和格式。为此,hquery还包括…

  • xquery的金块—只有几个好的部分!只够迭代、分支等。
  • {STR 1 } $XPath展开,用于HTML 和MdASH;包括类::轴和类()/cTIT>函数,加上缩写轴以保持简洁。
  • super charged string interpolation—具有强大的过滤器,您可以在生成数据时将其链接在一起进行转换。
  • 用于html和json的计算构造函数—这样您就可以以编程方式组装和输出新的html或json对象和数组。
  • out left field union decomposition—支持从union中的子句到不同表达式的惊人简洁而强大的映射。

##安装总部

pip install hq

##运行HQ

cat /path/to/file.html | hq ‘Hello, ${/html/head/title}!

…或…

hq -f /path/to/file.html ‘Hello, ${/html/head/title}!

打印使用信息:

hq –help

##学习

[wiki](https://github.com/rbwinslow/hq/wiki)讨论了指导hquery语言设计的[动机](https://github.com/rbwinslow/hq/wiki/Why-HQuery%3F),并提供了一个[语言引用](https://github.com/rbwinslow/hq/wiki/Language-Reference)。

##为总部贡献力量

hq是针对python 2.7和最近几代python 3(本文撰写时是3.4和3.5)进行测试的。该项目的文件结构和setup.py脚本基于[此博客文章](https://gehrcke.de/2014/02/distributing-a-python-command-line-application/)。

hq的依赖项被拆分为一个“基本”文件、运行应用程序所需的子集和一个“开发”文件,提供运行测试等所需的工具。开发任务:

pip install -r requirements/dev.txt

hquery_processor.py中的解析逻辑基于[top-down operator precedence](https://www.crockford.com/javascript/tdop/tdop.html)方法。

###运行测试

py.test

“dev.txt”依赖项还包括[pytest cov](https://pypi.python.org/pypi/pytest-cov),因此您可以生成一个很好的覆盖率报告(您可以在htmlcov目录中找到该报告):

py.test –cov=hq –cov-report html

如果要打开verbosity以了解测试中发生了什么,则需要使用-gabby标志(因为py.test拥有自己的-v标志)。您可能还希望一次只运行一个测试,因为gabby是gabby:

py.test –gabby -vv -k some_particular_test_function

###正在上载到PYPI

项目设置的这一方面和其他方面,包括在本地运行cli和使用setup.py,都在上面链接的博客文章中介绍。为了方便起见,下面是关于上传到pypi的部分:

$ python setup.py sdist $ /bin/ls dist cmdline-bootstrap-0.2.0.tar.gz

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

推荐PyPI第三方库


热门话题
java在ArrayList中比较数字   java在Kotlin中使异步调用同步   让“Scala编程”junit示例在IntelliJ中工作的java问题   java Servlet侦听器未在ContextListener中设置属性   将Microsoft SQL Server数据库连接到我的Java项目   加载资源时出现java“需要注册工厂”异常   java如何使用POI检查excel中的重复记录?   java如何更改机器生成的代码   java如何确保重写的方法是同步的   用Spring编写Hibernate时的java XML奥秘   java管理mysql数据库中存储的用户权限   java如何运行。来自Javascript的jar方法   java我想在Web应用程序中进行身份验证&对桌面应用程序使用相同的凭据。我该怎么做?