簡體   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