我正在尝试编写一个简单的脚本来简单地检查网页的特定值:
$("a#infgHeader").text() == "Delivered";
我想从Bash脚本自动执行此操作,以便间隔运行。使用Python也很好。我需要基本上发出HTTP请求,获取响应,并有办法智能地查询结果。是否有一个图书馆可以帮助我查询部分?
答案 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来解决您的问题。它带来了很多功能。
答案 3 :(得分:0)
答案 4 :(得分:0)
解析html对于一般网站来说并不简单,因为html可能不是完美的,而且可以通过java脚本动态修改DOM,因此在这种情况下解析html可能没有意义。
最好的方法是使用浏览器并直接访问DOM,因为您可以使用像phontomjs这样的无头浏览器,因此您可以编写脚本并检查您需要检查的内容