0

Web ページから一定範囲のデータを抽出するコードを探しています。ウェブページは次のとおりです。

http://kos.hdsat.pl/menu-20.html

私が興味を持っているデータの範囲は、Oscam.srvid データ (ページのデータの最初のリスト) です。このデータを Oscam.srvid というローカル ファイルにコピーしたいと考えています。

もう 1 つのオプションは、スクリプトを取得してパッケージのボックスを開き、ページの上部にある [Oscam.srvid] ボタンを選択することです。

どちらのオプションがスクリプト化するのが最も簡単かはわかりませんが、どちらもうまく機能します..

4

1 に答える 1

1

を使用wgetして html Web サイトをダウンロードし、使用sedするコンテンツを抽出できます。何かのようなもの

wget http://kos.hdsat.pl/menu-20.html && sed -n '/<textarea/,${/<\/textarea/q; s/<.*>//g; p}' menu-20.html > Oscam.srvid

仕事をすることができました。

ここで何が起こっているのですか?

wget http://kos.hdsat.pl/menu-20.htmlファイルをダウンロードします。成功した場合は実行しますsedが、オプションですべての出力を抑制します-n。次に、「textarea」の最初の出現を探し、ドキュメントの最後まで出力します ( $; 実際にはドキュメントの最後まで出力するのではなく、後で quit ステートメントを使用します)。これらの行で、次のsedコマンドを実行します。

/<\/textarea/q「<\textarea」を見つけたらすぐに終了します。 s/<.*>//gすべての <> ブラケット、つまり HTML タグを削除します。 p出力を抑制したため、すべての行を印刷します。

これは Web サイトではうまくいきましたが、Web サイトが変更されると失敗する可能性があります。たとえば、<textarea>実際に探している要素の前に導入された別の要素がある場合、 this のコンテンツが抽出されます<textarea>。次に、または類似のものsedを検索して、コマンドを絞り込むことができます。Oscam.srvid

于 2013-11-01T12:51:57.177 に答える