wgetは{..}の親ページのみを使用します。

wgetは{..}の親ページのみを使用します。

ウェブサイトから特定のページをダウンロードしようとしました。ウェブサイトは以下のようにユニバーサルURLを使用して次のページに移動します。

https://example.com/pages/?p=1

https://example.com/pages/?p=2

https://example.com/pages/?p=3最大450。

ページ内にリンクされたハイパーリンクではなく、ページのみをダウンロードしたいと思います。つまり、子ページではなく、?p1や?p2などの親ファイルだけをダウンロードしたいのです。

以下のコマンドを試しましたが、うまくいきません。

 wget --load-cookies=cookies.txt https://example.com/pages/\?p\=\{1..450\}

これは{..}がwgetで動作しないという意味ですか?それ以外の場合、目標を達成するために使用できるwgetオプションはありますか?

ベストアンサー1

中かっこの拡張 ( bashandksh93zsh) の算術範囲を理解するシェルを使用します。

wget --load-cookies=cookies.txt "https://example.com/pages/?p="{1..450}

wgetこれは(呼び出す前に)次に拡張されます。

wget --load-cookies=cookies.txt "https://example.com/pages/?p="1 "https://example.com/pages/?p="2 "https://example.com/pages/?p="3 ... "https://example.com/pages/?p="450

そしてcurl

curl --cookie-jar cookies.txt "https://example.com/pages/?p="{1..450}

次のコマンドを使用して、出力を別々のファイルに保存しますcurl

curl --cookie-jar cookies.txt -Ooutfile{1..450}.html "https://example.com/pages/?p="{1..450}

おすすめ記事