剛接觸node,想寫個爬蟲,爬取新浪微博評論,但是發現頁面是由JS動態生成的,用http模組爬取不到,然後用phantomjs爬取,(聽說會比較慢,運行了近15分鐘,這也太慢了,不知是否寫錯),還是不行,問一下有什麼辦法能夠爬取類似於新浪微博的網頁嗎?
let page=require("webpage").create();
let url="http://weibo.com/1713926427/Etq2WnSiR?filter=hot&root_comment_id=0&type=comment";
/*page.settings = {
javascriptEnabled: true,
loadImages: false,
webSecurityEnabled: false,
userAgent: 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER'
};*/
page.open(url,(status)=>{
console.log("Status:"+status);
if(status=="success"){
let val = page.evaluate(()=>{
var list_box=document.querySelector(".list_box");
console.log(list_box);
return list_box
});
console.log(val)
}else{
console.log("failed")
}
phantom.exit();
});
自己寫過微博的爬取,有兩種思路
仔細看一下應該是有介面去取得對應資料的然後用正規去匹配
微博提供了開發者API介面的,雖然用著比較麻煩