[英]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.