Rarファイル形式で保存されているいくつかの字幕ファイルをダウンロードしたい http://subs.sab.bz/ このサイトでは、新しいリリースのrssフィードを提供しています。残念ながら、提供されたリンクはダウンロードページを開きますが、ファイルを取得しません。
ダウンロードページの中央にボタンがあり、クリックすると目的のrarファイルのダウンロードがトリガーされます。とにかく、リンクを右クリックしてコピーし、それを開こうとすると、ブラウザはダウンロードページ自体を開きますが、ファイルをダウンロードしません。 wgetとcurlでファイルのダウンロードリンクを使用しようとすると、phpファイルがダウンロードされます。そのような場合、サーバー側のスクリプトを使用して正しいリンクをクライアントマシンに渡します。
それで、私はwgetにこのリンクのonclickアクションをエミュレートさせる方法を探しています。ダウンロードリンクの他のプロパティを見つけるのに十分なhtml cssとjavascriptを知っています。
これは可能ですか?
PS。なぜこの質問が反対票を投じられたのか、私はかなり混乱していますか?良い説明があれば、投稿のルールや何かを破ったのか、ありがとう。
あなたはいくつかのことを混乱させています。 「オンクリック」アクションはJavaScriptを指し、クライアント側です。これらのリンクのJavaScriptフックがURLを解明するために何を行うかを調べる必要があります。ただし、ここにはonclickアクションはありません。
問題のWebサイトが行うことは リファラーチェック であり、別名 "hotlink protection" です。ブラウザはデフォルトでリファラー値を送信します。これは前のページのURLです。これは、他のサイトがファイルへの直接リンクを投稿してWebサイトの帯域幅を利用しないようにするためです。
リンクをコピーしてブラウザーに直接貼り付けようとすると、ブラウザーはリファラー情報を送信することを知らないため、質問で説明しているのと同じ動作が発生します。
Wgetにリファラー値を偽造するように指示するオプションは--referer
、-e
カール用。通常、値はWebサイトのルートに安全に設定できます。Webサイトは通常、値が正しいことをチェックしませんそれを完全に確認します。
wget -O output.rar --referer http://subs.sab.bz/ 'http://subs.sab.bz/your-link-here'