node.js中的Zombie.js无法抓取某些网站

下面的简单脚本返回一堆垃圾。 它适用于大多数网站,但不威廉山:

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()); }); }); 

与节点一起运行

输出:

S J ꪙRUݒ kf 6 Efr2 Riz ^ 0 X { ^ a yp p Ή`(S] – 'N8q /ݻU;?݇ׯ荣ٲ> -3 GEE,mFMIQ2ڊZGOJ ^ SC〜gJO缇öݎP ET n;v v D tvJn J 8' 햷r v: m J Z nh ] Z. {ZӲlB'.¶D〜$ N / U “zNi” nj\ 00_I \ 00 \ SOE8 {“米; H,oQy;一个[CQD띊/ | ?:;!Z} / w的ےħ<%AK = -a〜”

(实际产量要长得多)

任何人都知道为什么会发生这种情况,特别是为什么它发生在唯一的网站,我真的想刮?

谢谢

我很久以前就放弃了这个方法,但是如果有人有兴趣的话,我可以从zombie.js开发者那里得到答复。

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

他说:“僵尸现在将发送接受编docker,以表明它不支持gzip。”

谢谢所有看过这个的人。

相同的代码适用于其他网站(也使用gzip回复),所以它不是一个代码问题。

我的猜测是该网站正在检测,您没有运行浏览器,并防止数据提取。