ServicenowのWebサイトからhtmlデータを取得しようとしています。フレームを使用しているので、wgetを使用してフレームソースを抽出したいと思います。この仕事をするためのオプション/フラグが見つかりません。ページソースのみを抽出でき、フレームソースは抽出できません。
wget -q https://company.service-now.com/task.do?sysparm_query=number=TASK0299719
フレームは、通常のリンクと同じように、独自のURLを持つ別個のページです。フレームを使用することにより、最初のページの作成者は、ユーザーがクリックして自分で表示するのを待つのではなく、2番目のページをすぐに取得して最初のページ内に表示する必要があると言っています。
Wgetは何も表示しないか、インタラクティブなユーザーがいないため、フレームとリンクの区別は無意味です。したがって、この問題は「wgetにリンクをたどってもらいたい」という特殊なケースと考えることができます。
wgetには再帰モード(-r
)があり、元のURLからのリンクをたどり、それらもダウンロードします。リンク先のURLのallをダウンロードしたくないので、絞り込む必要があります。
これが1回限りの操作である場合、またはフレームのURLが安定している場合は、元のページソースを自分で読み取り、iframe要素のsrc属性を見つけて、wgetに取得を依頼するだけです。
より多くの作業を行うためにwgetが必要な場合は、--follow-tags
オプションを使用して、iframeURLのみを取得するように依頼できます。
wget -r --follow-tags=iframe http://yourpage/
これにより、ページとそれに含まれるすべてのiframeがダウンロードされます。 iframe内にiframeがある場合、-l 1
のような再帰深度制限も指定しない限り、iframeも取得します。