Webページの一部ダウンロード [重複]

Webページの一部ダウンロード [重複]

Webページ(html)の一部のリストを「解析」したいです。 「解析」するには、<title> </title>タグ間のコンテンツを特定のファイルにリダイレクトするだけです。まずfor、ループを使用してwgetから(timeもちろん)curlこのケースがより速いという結論を下します。

だからそれは次のようになります:

for page in $(cat source.txt)
do
 echo "$(curl -s https://somewebpage/some_sub_page/$page \
 | grep '<title>' -A2 | sed -n '2p')" > tmp/$page/index
done 

これらすべてのサブページには、<title>以下のように私が興味を持っている情報が含まれています。

<title>
...
</title>

そのため、結果を得るために一般的なシェルツールを適用しました。私の問題は何ですか?約400ページなので、ページ全体を読み込んだ後にページをgrep読み込むなどの作業には時間がかかります。 HTMLドキュメントの最初の10行だけをロードするなど、より複雑なロードソリューションはありますか?私は古典的なbashユーティリティ(curl、wget)を使用していますが、この問題に適していると思われるユーティリティをお勧めします。

UPD:たぶんこれは完璧な解決策ではないかもしれませんが、headスクリプトを2回減らした後に追加されました。 (コピー)curltime

ベストアンサー1

正しい方法で試してください。表現する:

注文する:

saxon-lint --html --xpath '//title/text()' http://domain.tld/path

確認するサクソンリント(自己プロジェクト)

あなたはテストすることができますhttps(ただし、ほとんどの場合、HTMLパーサーはSTDERRを非表示にする必要があり、これはサポートされていません。それ以前に作成したコマンドと同じくらい良いです)

xmllint --html --xpath '//title/text()' http://domain.tld/path 2>/dev/null

ついに:

for page in $(cat source.txt); do
    chosen_command "https://somewebpage/some_sub_page/$page" > "/tmp/$page/index"
done

おすすめ記事