在Bash的静态HTML文件上运行jQuery

时间:2012-02-29 18:09:42

标签: jquery python bash

我正在尝试编写一个简单的脚本来简单地检查网页的特定值:

$("a#infgHeader").text() == "Delivered";

我想从Bash脚本自动执行此操作,以便间隔运行。使用Python也很好。我需要基本上发出HTTP请求,获取响应,并有办法智能地查询结果。是否有一个图书馆可以帮助我查询部分?

5 个答案:

答案 0 :(得分:9)

Xpath非常适合查询html。

这样的事情:

//a[@id='infgHeader']/@text

在chrome developer工具中,您可以使用Elements选项卡中的搜索框来测试表达式。

在终端快速运行:

$echo '<div id="test" text="foo">Hello</div>' | xpath '//div[@id="test"]/@text' 
Found 1 nodes:
-- NODE --
 text="foo"

答案 1 :(得分:2)

http://pypi.python.org/pypi/spynner/1.10

Spynner将允许您使用jquery语法从dom中选择元素。

或者还有其他库可以解析HTML。 BeautifulSoup,lxml

答案 2 :(得分:1)

Alex MacCaw撰写了一篇很好的文章,它使用node.js / JavaScript来解决您的问题。它带来了很多功能。

http://alexmaccaw.com/posts/node_jquery_xml_parsing

答案 3 :(得分:0)

我最近使用nodejs + jsdom做了类似的事情。两者都有很好的记录,但进入门槛很低。

答案 4 :(得分:0)

解析html对于一般网站来说并不简单,因为html可能不是完美的,而且可以通过java脚本动态修改DOM,因此在这种情况下解析html可能没有意义。

最好的方法是使用浏览器并直接访问DOM,因为您可以使用像phontomjs这样的无头浏览器,因此您可以编写脚本并检查您需要检查的内容