ページのソースがあり、このファイルからすべてのタグを取得する必要があります。順序は重要です。外部スクリプトとインライン スクリプトの両方が必要です。タグは出力に含まれている必要があります。コンソール Linux ツールを探しています。
検索してみましたが、何も見つからなかったので、jQuery を使用してこの情報を取得し、ファイルに貼り付けました。ただし、この出力には奇妙なエンコードが含まれているため、従来の方法で解析する必要があります。
例: 入力:
<html>
<head>
<script src="script1.js"></script>
<script src="script2.js"></script>
<script>alert('hello');</script>
</head>
<body>
<div id="main">...</div>
<script src="footer.js">
</body>
</html>
出力:
<script src="script1.js"></script>
<script src="script2.js"></script>
<script>alert('hello');</script>
<script src="footer.js">
2 番目の例では、src 属性のみを出力します。
script1.js
script2.js
inline script
footer.js
答え1
grep
とそれにのみ一致するパラメータ ( )を使用できます-o
。例:
$ grep -o "<[^>]*>" <(curl -s http://example.com/)
これにより、注文を含むすべての HTML タグが印刷されます。
タグのみを含めるには<script>
、次を試してください (index.html
ファイルに合わせて変更してください):
$ grep -Eo "<script.*(</script>|>)" index.html
ファイル名だけを取得するには (src
属性から)、別の を追加して拡張できますgrep
。例:
$ grep -Eo "<script.*(</script>|>)" index.html | grep -o '"[^"]*"' | tr -d '"'
上記の構文は、HTMLコードのさまざまなバリエーションには役立ちません。そのため、より複雑なソリューションについては、正規表現を使用してHTMLを解析する一般的には推奨されていないため、適切なツール(好みの言語またはこれらをチェックしてください)を使用する必要があります。シェルツール)。