Я хочу следить за изменениями на веб-сайтах, и мой нынешний подход противоречит вращающемуся верхнему баннеру. Есть ли инструмент UNIX, который принимает параметр выбора (атрибут id или XPath), считывает HTML из стандартного ввода и выводит поддерево на стандартный вывод на основе выбора?
Например, для html-документа я хочу отфильтровать все, кроме поддерева элемента с id="content"
. По сути, я ищу простейший эквивалент grep в HTML / XML.
Возможно, не то, что вы ищете, но как насчет того, чтобы написать быстрый скрипт на Python, используя BeautifulSoup для обработки HTML и предоставления вам разумно структурированного объекта, к которому вы можете получить доступ.
import urllib2
from BeautifulSoup import BeautifulSoup as BS
soup = BS(urllib2.urlopen('http://www.google.com').read())
soup.findAll('a')[1]
#returns
<a onclick="gbar.qs(this)" href="http://video.google.co.uk/?hl=en&tab=wv" class="gb1">Videos</a>
написать сценарий Perl с LWP и HTML :: TreeBuilder :: XPath возможно.