版权声明:
尊重知识产权,严厉打击非法采集。
通过关键字搜索抓取新浪微博的数据,分析得出新浪微博的搜索地址格式如下:
http://s.weibo.com/weibo/关键字
爬虫代码文件为 weibo-spider.js
假设我们要查询的关键字为 哈佛大学
则运行方式为
node weibo-spider.js 哈佛大学
执行此命令后,则爬虫会逐页抓取。
将上面的思路用以下用伪代码表示过程
// 主程序
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.txt
因Cookie包含私人信息本文不提供,请自行获取,获取Cookie方法有很多种,例如:登录后,通过浏览器复制 Cookie , 以下码基于你已拿到了 Cookie 。
weibo-spider.js 100行代码,依赖一个request模块和自定义xhtml模块。
完整代码已放到Hooyes的Github上开源,欢迎Fork或提建议。
$ welcome to hooyes.net
[INFO] ------------------------------o-
[INFO] Author : HOOYES
[INFO] Site : https://hooyes.net
[INFO] Page : https://hooyes.net/p/nodejs-weibo-spider
[INFO] Last build : 2023-07-31 09:16:20 +0000
[INFO] -0------------------------------
上一篇 区块链到底是什么