2012-01-05 10 views
2

以下の簡単なスクリプトは、ごみの束を返します。それはほとんどのウェブサイトのために働くが、ではないウィリアムの丘:node.jsのZombie.jsが特定のWebサイトを削るのに失敗しました

SJꪙRUݒkf6Efr2:ノード

出力と

var Browser = require("zombie"); 
var assert = require("assert"); 

// Load the page from localhost 
browser = new Browser() 
browser.visit("http://sports.williamhill.com/bet/en-gb/betting/y/5/et/Football.html", function() { 
browser.wait(function(){ 
console.log(browser.html()); 
}); 
}); 

実行 Riz ^0 X Ή 8q / ݻ ; ׯ ׯ ׯ ٲ ڊ ڊ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; D tvJn J 8' 햷 :: {{{{{{{¶¶¶¶¶¶¶ ¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶ u " z Ni "Nj \ 00_I \ 00 \ S O E8{" m; h 、o Q y ; a[ 띊띊 | | | |:::::: !}}}}}} AK = -a〜」

(実際の出力がはるかに長いです)、これはなぜ起こるか

誰もが知っている、具体的には、なぜそれが私が実際にこすりしたいだけのサイトになりますか? ??

おかげ

+0

ヘッダーを確認してください。 DEFLATEdまたはgzippedデータを取得している可能性があります。 – You

答えて

1

私はずっと前にこの方法をやめましたが、誰かが興味を持っている場合は、zombie.jsデベロッパーから返信があります。

https://github.com/assaf/zombie/issues/251#issuecomment-5969175

彼は言う:「ゾンビは今受け入れをコードするGZIPをサポートしていないことを示すために、ヘッダを送信します。」

ありがとうございました。

0

は同じコードは(も返信するにgzipを使用)他のサイトのために働くので、コードの問題ではありません。

私の推測では、あなたがブラウザを実行しておらず、データの抽出を擁護していないことをサイトが検出しています。

+1

バイナリ応答を送信してデータ抽出を防御しますか?ありそうもない。 – pguardiario

+0

私はそうは考えにくいと思います。私は合理的には、応答はダウンロードしたページに相当するgzippedであると確信しています、私はそれを解凍する方法が必要です。 –

関連する問題