2021.10.12
【解決済み】ヨドバシとかZOZOのサイトにどうやってもスクリプトからアクセス出来ない
https://www.yodobashi.com/product/100000001002798135/
https://zozo.jp/shop/xti/goods-sale/28300279/
上記は一例なんですが、perlのHTTP::Requestどころか、wgetでもアクセス出来ないん。もちろんWebブラウザではアクセス可能。どんな必要要件があるんですかね?教えて偉い人!!!!
例えばPerlだと
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
my $can_accept = HTTP::Message::decodable;
my $response = $ua->get('http://xxxxxx', 'Accept-Encoding' => $can_accept,);
if ($response->is_success) {
print $response->decoded_content;
}else{
print $response->status_line;
}
でアクセスするとタイムアウトしちゃう。
タイムアウト設定しないとデフォルトのタイムアウト(180秒)まで戻ってこない。
wgetだと永遠にレスポンスが返ってこない。
別にスクレイピングしようとかってわけじゃないんですが、このサイトはURLは自動でリンク先からサムネイル画像とってきてリンク生成する機能があるんで、URL書くとリンク生成する段階で固まっちゃうんだよ。困った。。。
追記
両方アクセス出来ました。みんなありがとー。ヘッダーを下記のように挿入したらアクセス出来ました。
my $can_accept = HTTP::Message::decodable;
my $response = $ua->get('https://xxxxxx',
'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36',
'Accept-Language' => 'ja,en-us;q=0.7,en;q=0.3',
'Accept-Encoding' => $can_accept,
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9');
しかし上記のヘッダーのうちどれがマストか検証してないけど少なくともこのUser-Agentが必須だった。これは今使っているChromeが出力しているもの。
または下記のように挿入。
$ua->default_header('User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36','Accept-Language' => 'ja,en-us;q=0.7,en;q=0.3','Accept-Encoding' => $can_accept,'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9');
と指定も可能。
下記はもともとのスクリプトで設定されていたUser-Agent。
Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1
これだとはじかれる念の入れよう。ボット対策かねぇ・・・・
PerlでWebページにアクセスする方法の俺的最新版は↓
Category:Perl・Javascript・python、サーバー管理メモ
Keyword:Apple/182
コメント
いいっすね!=5
001 [10.12 17:11]どん:これでとれた。ブラウザは置き換えて。curl 'https://www.yodobashi.com/product/100000....' -H 'User-Agent: (ブラウザ)' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' --compressed -H 'DNT: 1' -H 'Connection: keep-alive' ↑
002 [10.12 17:33]ちかぱか@Dion:User-Agent や Accept など、向こう側で必要なHTTPヘッダを受信するまで待ち受けているということですかね。 ↑
003 [10.12 18:19]サイト側もボットはなるべく弾きたい:似たような件で悩んでる人いましたね。https://teratail.com/questions/248027サーバーサイドじゃなくて、クライアントサイドで処理する(ページを閲覧しているブラウザ側でサムネイルなどを生成する)方が相手は嬉しいですよね。 ↑(1)
004 [10.12 21:38]どん@OCN:多分ですが、リクエストを破棄してると思います。なのでタイムアウトまで待ってしまうんだと思います。 ↑(1)
005 [10.12 22:21]yodobashiは>>001の人のでwgetとopenssl手打ちでも行けました@OCN:don't trackは不要でcompressionもいらないけどAccept-Encodingが無いと弾かれるみたいです。 ↑(1)
006 [10.12 22:25]zozoの方はAccept-Languageが要るみたい@OCN:あとはyodobashiと同じで大丈夫そうです。 ↑(1)
007 [10.12 23:14]ふぇちゅいん(管理人) TW★81:アクセスありがとー。上記に追記しましたがUser-Agentも厳密に見てるっぽい。 ↑(1)
008 [10.12 23:15]ふぇちゅいん(管理人) TW★81:アクセス出来ましたありがとー。の打ち間違い。 ↑
2025.01.25正規表現のオンラインWebチェッカー
2021.12.05中国のSippedが50ドルQVGAののToFカメラユニットを今年中に出荷開始。UVC、UART/SPI出力3コメ
2021.12.05Pythonのコードをワンラインで実行形式に変換してくれるPyInstaller1コメ
2021.12.03チャート、グラフを書くのに良さそうなGoogle Chart以外のJavascriptライブラリ5つ3コメ
2021.11.18まだ使ってる?今は非推奨となったJavaScriptの書き方。document.writeが強く非推奨だと!!!?4コメ
2021.10.19PerlのGD::Image->new()は画像じゃないデータを読み込ませるとエラーになることがあるので事前に手動で画像であることを確認した方が良い1コメ
2021.10.12【解決済み】ヨドバシとかZOZOのサイトにどうやってもスクリプトからアクセス出来ない16コメ
2021.08.31現代的なPerlの記述方法一覧2コメ
2021.07.09JavaScriptでワンタッチで仮想キーボードを表示する2コメ
2021.02.10PythonでPowerPointを作るライブラリ「python-pptx」が色々活用出来そう。22コメ
→カテゴリー:Perl・Javascript・python、サーバー管理メモ(記事数:83)
アクセス数の多い記事(過去1ヶ月)
●2025.03.20:どんな不都合が・・・(未分類)680access
●2025.03.14:8年ぶりにサンライズ出雲に乗車!家族4人で「ソロ個室」4部屋に上り乗車したメモ(#おでかけ情報)480access
●2024.09.15:我らがトライアル。ベトナム米を販売開始!(#グルメ・料理)477access
●2025.03.16:大量のレモンを余さず果汁絞るのが難しい。安い絞り器はクソばかり(#自宅DIY #ルーフテラス活用)445access
●2025.03.11:初めての焼き肉きんぐ(物語コーポレーション)の株主優待お食事券をゲット!!!!!優待・配当利回り年率3%程度(#お金 #マネー)362access
Apple
Apple 2025/04/01 15:56:iOS 19は「ソラリウム」って呼ばれているらしい。さて、この意味は?(ギズモード・ジャパン) 2025/04/01 15:18:Apple Intelligenceが日本語対応、何ができる? ちょっとだけ触ってみた(ケータイ Watch) 2025/04/01 15:14:iOS 19が入らないかも。そんなiPhoneが噂されています(ギズモード・ジャパン) 2025/04/01 13:34:Apple整備済品てどうなん?新品なん?(ガジェット2ch) 2025/04/01 12:44:Apple Intelligenceが日本語に対応。iOS/iPad OS 18.4、macOS 15.4で (PC Watch) |