質問: cloudflareがホストするサイトへのwgetの問題:503サービスが利用できません wget を使用して503エラーの他のインスタンスを見たことがありますが、利用できないため、これを解決できません。特定のwebサイトをダウンロードしようとすると、503 serviceunavailableエラーが発生します。これは、問題のwebサイト以外のwebサイトでは発生しません。これが起こっていることです。私が入ります:wget -r --no-parent -u mozilla http://www.teamspeak.com/ そして、これは私が返すエラーです。--2015-03-12 11:57:08-- http://www.teamspeak.com/ resolving www.teamspeak.com... 104.28.27.53, 104.28.26.53 connecting to www.teamspeak.com|104.28.27.53|:80... connected. http request sent, awaiting response... 503 service unavailable 2015-03-12 11:57:09 error 503: service unavailable. このサイトはcloudflare保護を使用しています(サイトを開くとき、「ブラウザをチェックする」まで5秒待つ必要があります。
回答: cloudflareの保護は、javascript、cookie、およびhttpヘッダーフィルタリングに基づいています。 wgetを使用してcloudflareで保護されたサイトをクロールする場合は、最初にデバッガー付きのブラウザー(firefoxを搭載したfirefoxなど)にサイトを入力し、cookieリクエストヘッダーをコピーする必要があります。ここで最も難しい部分:このcookieは1時間のみ有効であるため、1時間ごとに手動で更新する必要があります。サイトをクロールするために使用できる完全なコマンドは次のとおりです。wget -u "mozilla/5.0 (windows nt 6.1; wow64; rv:39.0) gecko/20100101 firefox/39.0" --header="accept: text/html" --header="cookie: __cfduid=xpzezr54v5qnaoet5v2dx1ias5xx8m4faj7d5mfg4og; cf_clearance=0n01f6dkcd31en6v4b234a6d1jhoaqgxa7lklwbj-1438079290-3600" -np -r http://www.teamspeak.com/ __cfduid cookieの値は一定であり、cf_clearance cookieの値を1時間ごとに変更するだけでよいことに注意してください。