繁体   English   中英

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

[英]Zombie.js in node.js fails to scrape certain websites

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

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 ꪙRUk kf 6 Efr2 Riz 0 X { ^ a yp p Ή`(S] - 'N8q /ݻU;?݇ׯ荣ٲ> -3 GEE,mFMIQ2ڊZGOJ ^ SC〜gJO缇öݎP ET n;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

他说:“僵尸现在将发送accept-encoding头,以表明它不支持gzip。”

谢谢所有调查此事的人。

相同的代码可用于其他站点(也使用gzip进行答复),因此这不是代码问题。

我的猜测是该站点正在检测到您没有运行浏览器并防御了数据提取。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM