Я хотел бы найти простейший способ захвата содержимого между тегами HTML / XML с удаленного ресурса в unix. Вот как я думал, что это сработает.
curl https://www.google.com | grep "<title>" | cut -d '<title>' -f2 | cut -d '</title>' -f1
Итак, сначала я curl
ресурс, выделяю строку с тегом, который мне нужен (что иногда означает весь HTML, потому что в наши дни многие веб-сайты минимизированы).
Потом я вырезал все после открытия <title>
и, наконец, я вырезал все после закрытия ''.
Однако это вызывает ошибку: curl: (23) Failed writing body (0 != 8192)
. Похоже, что ошибка возникает из-за того, что cut
не поддерживает разделители, которые представляют собой какие-либо символы, кроме одного.
Мне понравилось, что мой подход был очень минималистичным способом получения данных, которые я хотел, и я ищу другой простой способ сделать это.
Кроме того, даже если бы это сработало, мое решение работало бы только для одного тега в HTML. А как насчет тега, который появляется много раз?
sed -n
, но, как утверждали другие, вероятно, не рекомендуется анализировать html как простой текст. Для справки, подходsed
будет выглядеть так:curl https://xkcd.com/ | grep "<title>" | sed -n "/<title>/,/<\/title>/p"
. - person Orun   schedule 19.08.2018