详解50行代码,Node爬虫练手项目


Posted in Javascript onApril 22, 2019

First

项目地址:Crawler-for-Github-Trending

项目中基本每一句代码都写有注释(因为就这么几行?),适合对Node爬虫感兴趣的同学入入门。

Introduction

50 lines, minimalist node crawler for Trending.

一个50行的node爬虫,一个简单的 axios, express, cheerio 体验项目。

Usage

首先保证电脑已存在node环境,然后

1.拉取本项目

git clone https://github.com/ZY2071/Crawler-for-Github-Trending.git
cd Crawler-for-Github-Trending
npm i
node index.js

2.或者下载本项目压缩包,解压

cd Crawler-for-Github-Trending-master // 进入项目文件夹
npm i
node index.js

Examples

当启动项目后,可以看到控制台输出

Listening on port 3000!

 此时打开浏览器,进入本地服务 http://localhost:3000/daily

http://localhost:3000/time-language // time表示周期,language代表语言  例如:
http://localhost:3000/daily // 代表今日 可选参数:weekly,monthly
http://localhost:3000/daily-JavaScript// 代表今日的java分类 可选参数:任意语言

 稍微等待即可看到爬取完毕的返回数据:

[
 {
 "title": "lib-pku / libpku",
 "links": "https://github.com/lib-pku/libpku",
 "description": "贵校课程资料民间整理",
 "language": "JavaScript",
 "stars": "14,297",
 "forks": "4,360",
 "info": "3,121 stars this week"
 },
 {
 "title": "SqueezerIO / squeezer",
 "links": "https://github.com/SqueezerIO/squeezer",
 "description": "Squeezer Framework - Build serverless dApps",
 "language": "JavaScript",
 "stars": "3,212",
 "forks": "80",
 "info": "2,807 stars this week"
 },
 ...
]

More

本项目仅供爬取体验,每次访问都会实时爬取数据,所以数据返回速度会比较慢,实际操作应该是定时爬取数据然后将数据存进数据库,数据从数据库返回从而提高数据返回效率。

但项目很基础,可以作为以上各个node模块最基础的练手使用,希望可以帮到大家 ?

Javascript 相关文章推荐
jQuery 选择器、DOM操作、事件、动画
Nov 25 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
Mar 04 Javascript
Jquery为a标签的href赋值实现代码
May 03 Javascript
Javascript获取HTML静态页面参数传递值示例
Aug 18 Javascript
IE下通过a实现location.href 获取referer的值
Sep 04 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
Mar 02 Javascript
jQuery控制frames及frame页面JS的方法
Mar 08 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
Aug 25 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
Sep 05 Javascript
babel之配置文件.babelrc入门详解
Feb 22 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
Nov 05 Javascript
Jquery让form表单异步提交代码实现
Nov 14 jQuery
Vue匿名插槽与作用域插槽的合并和覆盖行为
Apr 22 #Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
Apr 22 #Javascript
详解Node.js一行命令上传本地文件到服务器
Apr 22 #Javascript
使用 vue 实例更好的监听事件及vue实例的方法
Apr 22 #Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
Apr 22 #Javascript
关于vue-cli 3配置打包优化要点(推荐)
Apr 22 #Javascript
说说如何利用 Node.js 代理解决跨域问题
Apr 22 #Javascript
You might like
深入了解php4(2)--重访过去
2006/10/09 PHP
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
2020/07/21 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
pytorch 共享参数的示例
2019/08/17 Python
Django之PopUp的具体实现方法
2019/08/31 Python
基于python3抓取pinpoint应用信息入库
2020/01/08 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
软件工程师面试题
2012/06/25 面试题
实习自我鉴定模板
2013/09/28 职场文书
物业门卫岗位职责
2013/12/28 职场文书
清洁工表扬信
2014/01/08 职场文书
十佳好少年事迹材料
2014/08/21 职场文书
党员评议个人总结
2014/10/20 职场文书
关于幸福的感言
2015/08/03 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
php去除deprecated的实例方法
2021/11/17 PHP