用100行Nodejs代码写微博爬虫
文章为原创首发地址: https://hooyes.net/p/nodejs-w...
思路
通过关键字搜索抓取新浪微博的数据,分析得出新浪微博的搜索地址格式如下:
http://s.weibo.com/weibo/关键字
爬虫代码文件为 weibo-spider.js
假设我们要查询的关键字为 哈佛大学
则运行方式为
node weibo-spider.js 哈佛大学
执行此命令后,则爬虫会逐页抓取。
伪代码
将上面的思路用以下用伪代码表示过程
// 主程序
async function Main(keyword) {let url = 'http://s.weibo.com/weibo/'+keywordlet 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
用100行Nodejs代码写微博爬虫相关推荐
- python实现新闻网站_如何用 100 行 Python 代码实现新闻爬虫?这样可算成功?
每天我都要坐地铁上班,而地铁里信号差.但我希望在坐地铁的时候读些新闻,于是就写了下面这个新闻爬虫.我并没有打算做很漂亮的应用,所以只完成了原型,它可以满足我最基本的需求.其思路很简单: 找到新闻源;用 ...
- 计算器百分号如何用代码实现_如何用 100 行 Python 代码实现新闻爬虫?这样可算成功?...
每天我都要坐地铁上班,而地铁里信号差.但我希望在坐地铁的时候读些新闻,于是就写了下面这个新闻爬虫.我并没有打算做很漂亮的应用,所以只完成了原型,它可以满足我最基本的需求.其思路很简单: 找到新闻源:用 ...
- python 爬取财经新闻_如何用 100 行 Python 代码实现新闻爬虫?
CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 每天我都要坐地铁上班,而地铁里完全没有手机信号.但我希望在坐地铁的时候读些新闻,于是就写了下面这个新闻爬虫. 我 ...
- python抓包 windows_教你用100行Python代码写一个抓包工具
现代计算机程序大部分时候离不开网络,作为开发者,在日常开发网络相关的程序或者排查程序错误时经常会用抓包工具来分析网卡收发的数据,比如著名的tcpdump,Wireshark等.今天我们尝试用100行左 ...
- 记一次使用开源代码的微博爬虫的经历
记一次使用开源代码的微博爬虫的经历 开源可以让我们的生活更佳美好.之前一直打算把写一个的新浪微博爬虫,然后将数据存入数据库,从而以支持我后续的科研数据分析. 最初,我去看看了微博官方提供的开发者API ...
- python模拟别人说话的声音_如何用100行Python代码做出魔性声控游戏“八分音符酱”...
最近几天,一款魔性的小游戏在微博上刷屏了,各大平台的主播也纷纷如感染病毒一样直播自己怎么玩这个游戏(被游戏玩). 这个游戏叫做<不要停!八分音符酱♪>.它是一款来自岛国的恶搞游戏,主角是一 ...
- 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)
前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...
- c语言微信挑一挑编程,100行python代码实现微信跳一跳辅助程序
写在前面 分享一下今天下午用python写的"跳一跳"小游戏的辅助程序.之前是准备用树莓派操控一个"机械手指"来代替人的触摸操作,但该方案还在酝酿中,实现了再分 ...
- 100行python代码实现五子棋-教程
五子棋是是一种两人对弈的纯策略型棋类游戏. 五子棋有两种玩法.玩法一:双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成五子连线者获胜.玩法二:自己形成五子连线就替换对方任意一枚棋子.被 ...
最新文章
- Oracle备份恢复一(手动备份)
- 庞锋 OpenCV 视频 学习进度备忘
- springMVC上传下载
- spring-mvc(基础)
- Ubuntu21.04 Docker 安装
- deepfake 图片_DeepFake克星来了!简单2步算法,造假图像无处可逃
- 地线与接地螺丝_电气接地规范与接地的各项参数
- SAP License:PO中“最终发票”的应用与理解
- 〖教程〗Ladon免杀/.NET免杀/Exe2Ps1/Ps12Exe
- OGRE关于 Demo_Ocean 例子的分析
- 群晖nas安装监控后台SurveillanceStation
- 给技术人提升自己的几点建议
- android和夜神模拟器哪个好,天天模拟器和夜神安卓模拟器哪个好 两者功能对比...
- 好用的谷歌浏览器插件
- windows10 更新NVIDIA 显卡驱动
- 第一次写writeup
- android 图片空白,图片显示上下有空白的解决办法
- Ruby on Rails 新版本
- ZOJ4062 Plants vs. Zombies 二分
- android悬浮窗组件,Android 悬浮窗,悬浮view功能实现