curlリクエストでhtmlテキストをgrepし、2つのhtmlタグ間の値を出力する方法はありますか?
より具体的に言えば、フォームの入力値は何ですか?
答え1
一般的なUNIXコマンド(soなど)を混在させて、curl
ダウンロードしたhtmlの内容を読み取ることができます。これを読む正確な方法は、フォームの特定の外観とそれを解釈する方法によって異なります。grep
awk
ライブラリがある他の言語を使用してこれを行うこともできますperl
。
ただし、入力フォームには、特定の人物またはプロセスによって入力されたフィールドにのみ内容があります。地元のPOST(または可能性の低いGET)要求を介して送信する前に。
入力フォームは明らかにデフォルト値を持つことができますが、あなたが尋ねるものは、入力されたフォームからデータを何らかの形で抽出できるかどうかを尋ねるようです。そして答えはカールから出ません。これは、カールがWebサーバーにWebを要求するためです。ページをクリックすると、空のフォームが表示されます。
おそらく、あなたが達成したいことが何であるかを明確にすることができます。
答え2
持つ
- HTML子犬
- xhtml/xml用xpup(CSSセレクタの代わりにxpathを使用)
彼らは以下からインスピレーションを受けた。JSONパーサーJQ 同様の構文と動作を提供します。
curl -s https://news.ycombinator.com/ | pup 'table table tr:nth-last-of-type(n+2) td.title a attr{href}'