Получить данные из html элемента в bash

338
17 августа 2017, 20:21

Я знаю, что в PowerShell можно ввести $ie.document.getElementById("name").value, перед этим создав COM-объект Internet Explorer.

А как в Bash получить какое-нибудь значение из HTML и, к примеру, записать его в файл или изменить? И можно ли через Bash закинуть какой-нибудь user script в браузер?

Answer 1

Для этой цели лучше использовать язык запросов XPath и утилиту xmllint.

Пример:

xmllint --html --xpath 'normalize-space(string(//p))' dummy.html

Для стандартной рыбы это нам напечатает её текст.

<!DOCTYPE html> 
<html lang="la"> 
  <head> 
    <meta charset="utf-8"> 
    <title>Simplex exemplum</title> 
  </head> 
  <body> 
    <h1>Lorem ipsum</h1> 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod 
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
    veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
    commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
    velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 
    cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id 
    est laborum.</p> 
  </body> 
</html>

К сожалению, у этого метода куча ограничений.

  • Кодировка должны быть указана в документе явно
  • HTML5 теги не поддерживаются

Но не смотря на это, идея использовать внешние инструменты для разбора HTML выглядит многообещающей.

READ ALSO
Как задать фон больше чем ширина родительского блока?

Как задать фон больше чем ширина родительского блока?

Есть блок с контентом обернутый в containerИ у него есть фоновый цвет который должен идти на всю ширину body(т

266
Эффект затемнения вокруг формы

Эффект затемнения вокруг формы

Подскажите какие сss надо использовать для затемнение при запуске окна формы Вот так

321
Как сделать чтобы количество select стало равно цифры введённой в input

Как сделать чтобы количество select стало равно цифры введённой в input

Добрый день! Подскажите пожалуйста как реализовать такую функцию Есть код

377
Не работает кодировка сайта на другом компьютере [требует правки]

Не работает кодировка сайта на другом компьютере [требует правки]

Сайт на другом компьютере открывается с кракозябрами, а на моём нормальноКодировку UTF-8 прописал

311