2012-02-29 142 views
6
静态HTML文件运行jQuery的

我试图写一个简单的脚本,只需检查网页的特定值:从猛砸

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

我想从一个bash脚本来自动执行此每隔一段时间运行一次。我用Python也很好。我需要实质上发出一个HTTP请求,获得响应,并有一种方法来智能地查询结果。有没有一个库可以帮助我查询部分?

回答

8

Xpath非常适合查询html。

事情是这样的:

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

Chrome开发工具,您可以使用搜索框的元素标签来测试表达。在终端

快速运行:

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

万岁XPATH!我想知道这是否有帮助。我不知道,因为HTML!= XML,但是,嘿,如果它工作,它的工作原理。 – 2012-02-29 19:33:49

+1

正确的语法似乎是'xpath -e ...'。 – Tgr 2016-03-23 14:38:03

+0

'xpath'与非严格的XML HTML代码很差。当它在100行的HTML片段上运行时,它会冻结一分钟,然后随着“不匹配的标签”错误而死亡,显然是因为代码有''而不是''。 – Tgr 2016-03-23 14:48:19

2

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

Spynner会让你选择使用jQuery语法从DOM元素。

还有其他的库可以让你解析HTML。 BeautifulSoup,lxml

+0

固定链接:https://pypi.python.org/pypi/spynner/ – 2016-04-09 02:23:08

0

我最近做了这样的事情,使用nodejs + jsdom这两个都有很好的文件记录与低进入壁垒。

0

要解析HTML是不平凡普通的网站,因为HTML可能不太守和DOM可以通过Java的脚本在运行时被修改,所以在这种情况下,解析HTML可能没有意义。

最好的办法是使用浏览器直接访问DOM中,你可以使用一个无头的浏览器,如phontomjs,所以你可以编写脚本,并检查任何你需要检查