連絡先から音楽を送ります。 オタクの方法

それはすべて、私が彼らが定期的に音楽をアップロードするグループが好きだったという事実から始まりました。 しかし、私はほとんどプレイヤーから音楽を聴くため、PCに曲をダウンロードすることに関して疑問が生じました。 かなり大きなプレイリストを作り、それを捨てたかった。 1曲のダウンロードはマゾヒズムです。 私はネットワークからの迷信を信用していません。 どうやってこれをやったの?

まず、Kontaktovskページでマークアップを簡単に確認しました。 曲へのリンクが隠し入力の値としてクリアテキストで保存され、マスクhttp://cs*.userapi.com/*/audio/*.mp3,*に対応することがすぐに明らかになりました。

コンソールへのjQueryリクエストをすばやく作成しても、私は何も受け取りませんでした。 VKontakte私のお気に入りのライブラリは使用されません。 問題はありません。同じコンソールを使用して、jQueryを次のトリックを使用してページに接続します。

function addJQuery(callback) { var script = document.createElement("script"); script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"); script.addEventListener('load', function() { var script = document.createElement("script"); script.textContent = "(" + callback.toString() + ")();"; document.body.appendChild(script); }, false); document.body.appendChild(script); }
      
      





今、あなたはビジネスに取りかかることができます。 input:hidden



セレクターですべての非表示フィールドを見たところ、それらのフィールドには目的のリンクが含まれており、マスクaudio_info *に対応するidがあることがわかりました。 セレクターを少し改善します。 input:hidden[id*='audio']



は必要な入力のみを受け取ります。

ここでやめて、次のようなすべてのオーディオへのリンクを取得することができます。

$('input:hidden[id*="audio"]').each(function () {

url=$(this).attr('value').split(',')[0];

console.log("wget "+url);

});




、それらをwget-yにフィードして、出力を取得します...ファイル名のハッシュに すべての曲にidv3タグが付いているわけではなく、ダウンロード後のファイル名はa..zと0..9の文字で構成されており、アーティストのヒントやトラック名はありません。 一般に、サーバー上のファイルに移動します。 したがって、継続します。

私たちは、入力についてのアーティストと作曲の名前に関する情報を探しており、これを行うことができるという結論に達しました。

 $('input:hidden[id*="audio"]').each(function () { url=$(this).attr('value').split(',')[0]; author=$(this).parent().parent().parent().find('b').find('a[href*="search"]').html(); song=$(this).parent().parent().parent().find('span[id*="title"]').html(); console.log('wget -O "'+author+'-'+song+'.mp3" '+url); });
      
      





コンソール出力をコピーし、ファイルからガベージ(存在する場合)を削除し、実行可能スクリプトであることが判明したものを実行します。

それはうまく機能し、私のものはすでに約2 GB〜126曲をダウンロードしました。 もちろん、1つのストリームでですが、私は急いでいません。 ここを読んでくれたみんなに-ありがとう:)



All Articles