文章爲原創首發地址: https://hooyes.net/p/nodejs-w...
經過關鍵字搜索抓取新浪微博的數據,分析得出新浪微博的搜索地址格式以下:javascript
http://s.weibo.com/weibo/關鍵字
爬蟲代碼文件爲 weibo-spider.js html
假設咱們要查詢的關鍵字爲 哈佛大學
則運行方式爲java
node weibo-spider.js 哈佛大學
執行此命令後,則爬蟲會逐頁抓取。node
將上面的思路用如下用僞代碼表示過程git
// 主程序 async function Main(keyword) { let url = 'http://s.weibo.com/weibo/'+keyword let data = await fetchHtml(url); Worker(data); } // 抓取 url 的程序 function fetchHtml(url) { } // Worker 負責解析抓取的HTML並轉化成 JSON function Worker(data){ } // 爲了防止過快抓取,模擬一個線程等待 const Thread = { Sleep : function (d) { return new Promise((a, r) => { setTimeout(() => { a() }, d) }) } } // Nodejs 命令行參數 let argvs = process.argv; let keyword = argvs[2]; Main(keyword);
執行fetchHtml的時候附帶登陸的 Cookie,本文把 Cookie 存在 Cookie.txtgithub
因Cookie包含私人信息本文不提供,請自行獲取,獲取Cookie方法有不少種,例如:登陸後,經過瀏覽器複製 Cookie , 如下碼基於你已拿到了 Cookie 。
weibo-spider.js 100行代碼,依賴一個request模塊和自定義xhtml模塊。瀏覽器
完整代碼已放到Hooyes的Github上開源,歡迎Fork或提建議。async
weibo-spider.jsxhtml.jside