ブラウザからのアクセスが期待されているデータをWgetで保存する
ブラウザからのアクセスが期待されている場合、ブラウザ以外からアクセスすると403 Forbiddenエラーが返される事がある
ブラウザと同じ振る舞いをする必要がある
User-AgentやRefererの情報が必要になる
ブラウザの開発者機能のネットワークタブの、ヘッダー情報から確認できる
pixivにFirefoxでアクセスした場合
要求ヘッダー
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Referer: https://www.pixiv.net/
Wgetにブラウザと同じ振る舞いをしてもらう
user agent spoofing
$ wget --user-agent="Mozilla/5.0" --referer="http://example.com/referer" http://example.com/image.jpg
複数ダウンロードする
$ chmod +x ./script.shで実行許可を与えておく
Bashスクリプトをつくる
code:download_images.sh
#!/bin/bash
# 変数の定義
BASE_URL="https://example.com/作品ID_ページ数"
EXT=".jpg"
START_PAGE=0 # 開始ページ番号
END_PAGE=10 # 終了ページ番号
USER_AGENT="Mozilla/5.0"
REFERER="https://example.com/"
# ページ数の範囲をループ
for PAGE in $(seq $START_PAGE $END_PAGE); do
URL="${BASE_URL}${PAGE}${EXT}"
echo "Downloading: $URL"
wget --user-agent="$USER_AGENT" --referer="$REFERER" -q "$URL"
# ステータスの確認
if $? -ne 0 ; then
echo "Failed to download $URL"
else
echo "Successfully downloaded $URL"
fi
sleep 10
done
echo "Download process completed."