文章为原创首发地址: 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