Запуск jQuery для статического HTML-файла из Bash - PullRequest
7 голосов
/ 29 февраля 2012

Я пытаюсь написать простой скрипт, чтобы просто проверить веб-страницу на предмет определенного значения:

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

Я бы хотел автоматизировать это из скрипта Bash, который будет запускаться с интервалом. Я также в порядке с использованием Python. Мне нужно по сути сделать HTTP-запрос, получить ответ и найти способ интеллектуального запроса результата. Есть ли библиотека, которая поможет мне с запросом?

Ответы [ 5 ]

9 голосов
/ 29 февраля 2012

Xpath отлично подходит для запросов html.

Примерно так:

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

В Chrome Developer Tool вы можете использовать поле поиска на вкладке Элементы для проверки выражения.

Быстрый запуск в терминале:

$echo '<div id="test" text="foo">Hello</div>' | xpath '//div[@id="test"]/@text' 
Found 1 nodes:
-- NODE --
 text="foo"
2 голосов
/ 29 февраля 2012

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

Spynner позволит вам выбирать элементы из dom с использованием синтаксиса jquery.

Или есть другие библиотеки, которые позволяют разбирать HTML.BeautifulSoup, lxml

1 голос
/ 29 февраля 2012

Алекс МакКоу написал хороший пост, который делает именно то, что вы просите, используя node.js / JavaScript.У него тоже много возможностей.

http://alexmaccaw.com/posts/node_jquery_xml_parsing

0 голосов
/ 29 февраля 2012

Анализ html не является тривиальным для обычных веб-сайтов, потому что html может не быть префектом и DOM может быть изменен с помощью java-скрипта на лету, поэтому синтаксический анализ html может не иметь смысла в таком случае.Можно использовать браузер и получить прямой доступ к DOM, для этого вы можете использовать безголовый браузер, такой как phontomjs , так что вы можете написать его и проверить все, что нужно для проверки

0 голосов
/ 29 февраля 2012

Я недавно сделал что-то подобное, используя nodejs + jsdom , оба хорошо документированы с низким входным барьером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...