前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用100行Nodejs代码写微博爬虫

用100行Nodejs代码写微博爬虫

原创
作者头像
hooyes
发布2018-03-21 16:27:07
3.9K8
发布2018-03-21 16:27:07
举报
文章被收录于专栏:技术杂谈

文章为原创首发地址:https://hooyes.net/p/nodejs-weibo-spider

5a9dfda4106f9 (1).png
5a9dfda4106f9 (1).png

思路

通过关键字搜索抓取新浪微博的数据,分析得出新浪微博的搜索地址格式如下:

代码语言:txt
复制
http://s.weibo.com/weibo/关键字

爬虫代码文件为 weibo-spider.js

假设我们要查询的关键字为 哈佛大学 则运行方式为

代码语言:txt
复制
node weibo-spider.js 哈佛大学

执行此命令后,则爬虫会逐页抓取。

伪代码

将上面的思路用以下用伪代码表示过程

代码语言:txt
复制
// 主程序 
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或提建议。

weibo-spider.js

xhtml.js

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 思路
  • 伪代码
  • 真代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档