返回顶部
首页 > 资讯 > 前端开发 > node.js >简单好用的nodejs 爬虫框架分享
  • 757
分享到

简单好用的nodejs 爬虫框架分享

爬虫好用框架 2022-06-04 17:06:43 757人浏览 八月长安
摘要

这个就是一篇介绍爬虫框架的文章,开头就不说什么剧情了。什么最近一个项目了,什么分享新知了,剧情是挺好,但介绍的很初级,根本就没有办法应用,不支持队列的爬虫,都是耍流氓。 所以我就先来举一个例子,看一下这个爬

这个就是一篇介绍爬虫框架的文章,开头就不说什么剧情了。什么最近一个项目了,什么分享新知了,剧情是挺好,但介绍的很初级,根本就没有办法应用,不支持队列的爬虫,都是耍流氓。 所以我就先来举一个例子,看一下这个爬虫框架是多么简单并可用。

第一步:安装 Crawl-pet

nodejs 就不用多介绍吧,用 npm 安装 crawl-pet


$ npm install crawl-pet -g --production

运行,程序会引导你完成配置,首次运行,会在项目目录下生成 info.JSON 文件


$ crawl-pet

> Set project dir: ./test-crawl-pet
> Create crawl-pet in ./test-crawl-pet [y/n]: y
> Set target url: Http://foodshot.co/
> Set save rule [url/simple/group]: url
> Set file type limit: 
> The limit: not limit
> Set parser rule module:
> The module: use default crawl-pet.parser

这里使用的测试网站 http://foodshot.co/ 是一个自由版权的,分享美食图片的网站,网站里的图片质量非常棒,这里用它只是为测试学习用,大家可以换其它网站测试

如果使用默认解析器的话,已经可以运行,看看效果:


$ crawl-pet -o ./test-crawl-pet

查看图片

试试看

这是下载后的目录结构

查看图片

本地目录结构

第二步:写自己的解析器

现在我们来看一看如何写自己的解析器,有三种方法来生成我们自己的解析器

在新建项目时, 在 Set parser rule module 输入自己的解释器路径。修改 info.json 下的 parser 项这个最简单,直接在项目录下新建一个 parser.js 文件

使用 crawl-pet, 新建一个解析器模板


$ crawl-pet --create-parser ./test-crawl-pet/parser.js

打开 ./test-crawl-pet/parser.js 文件


// crawl-pet 支持使用 cheerio,来进行页面分析,如果你有这个需要
const cheerio = require("cheerio")


exports.header = function(options, crawler_handle) {  
}



exports.body = function(url, body, response, crawler_handle) {
 const re = /b(href|src)s*=s*["']([^'"#]+)/ig
 var m = null
 while (m = re.exec(body)){
  let href = m[2]
  if (/.(png|gif|jpg|jpeg|mp4)b/i.test(href)) {
    // 这理添加了一条下载
   crawler_handle.aDDDown(href)
  }else if(!/.(CSS|js|json|xml|svg)/.test(href)){
    // 这理添加了一个待解析页面
   crawler_handle.addPage(href)
  }
 }
  // 记得在解析结束后一定要执行
 crawler_handle.over()
}

在最后会有一个分享,懂得的请往下看

第三步:查看爬取下来的数据

根据以下载到本地的文件,查找下载地址


$ crawl-pet -f ./test-crawl-pet/photos.foodshot.co/*.jpg

查看图片
查找下载地址

查看等待队列


$ crawl-pet -l queue

查看图片
查看等待队列

查看已下载的文件列表

$ crawl-pet -l down # 查看已下载列表中第 0 条后的5条数据 $ crawl-pet -l down,0,5 # --json 参数表示输出格式为 json $ crawl-pet -l down,0,5 --json

查看图片
已下载的文件

查看已解析页面列表,参数与查看已下载的相同

$ crawl-pet -l page

基本功能就这些了,看一下它的帮助吧

该爬虫框架是开源的,GitHub 地址在这里:https://github.com/wl879/Crawl-pet


$ crawl-pet --help

 Crawl-pet options help:

 -u, --url  string    Destination address
 -o, --outdir string    Save the directory, Default use pwd
 -r, --restart      Reload all page
 --clear        Clear queue
 --save   string    Save file rules following options
          = url: Save the path consistent with url
          = simple: Save file in the project path
          = group: Save 500 files in one folder
 --types   array    Limit download file type
 --limit   number=5   Concurrency limit
 --sleep   number=200   Concurrent interval
 --timeout  number=180000  Queue timeout
 --proxy   string    Set up proxy
 --parser  string    Set crawl rule, it's a js file path!
          The default load the parser.js file in the project path
 --maxsize  number    Limit the maximum size of the download file
 --minwidth  number    Limit the minimum width of the download file
 --minheight  number    Limit the minimum height of the download file
 -i, --info       View the configuration file
 -l, --list  array    View the queue data 
          e.g. [page/down/queue],0,-1
 -f, --find  array    Find the download URL of the local file
 --json        Print result to json fORMat
 -v, --version      View version
 -h, --help       View help

最后分享一个配置


$ crawl-pet -u https://www.reddit.com/r/funny/ -o reddit --save group

info.json


{
 "url": "https://www.reddit.com/r/funny/",
 "outdir": ".",
 "save": "group",
 "types": "",
 "limit": "5",
 "parser": "my_parser.js",
 "sleep": "200",
 "timeout": "180000",
 "proxy": "",
 "maxsize": 0,
 "minwidth": 0,
 "minheight": 0,


 "cookie": "over18=1"
}

my_parser.js


exports.body = function(url, body, response, crawler_handle) {
 const re = /b(data-url|href|src)s*=s*["']([^'"#]+)/ig
 var m = null
 while (m = re.exec(body)){
  let href = m[2]
  if (/thumb|user|icon|.(css|json|js|xml|svg)b/i.test(href)) {
   continue
  }
  if (/.(png|gif|jpg|jpeg|mp4)b/i.test(href)) {
   crawler_handle.addDown(href)
   continue
  }
  if(/reddit.com/r//i.test(href)){
   crawler_handle.addPage(href)
  }
 }
 crawler_handle.over()
}

如果你是了解 reddit 的,那就这样了。

GIthub 地址在这里:https://github.com/wl879/Crawl-pet

本站下载地址:点击下载

--结束END--

本文标题: 简单好用的nodejs 爬虫框架分享

本文链接: https://lsjlt.com/news/12722.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 简单好用的nodejs 爬虫框架分享
    这个就是一篇介绍爬虫框架的文章,开头就不说什么剧情了。什么最近一个项目了,什么分享新知了,剧情是挺好,但介绍的很初级,根本就没有办法应用,不支持队列的爬虫,都是耍流氓。 所以我就先来举一个例子,看一下这个爬...
    99+
    2022-06-04
    爬虫 好用 框架
  • 分享一个简单的java爬虫框架
    反复给网站编写不同的爬虫逻辑太麻烦了,自己实现了一个小框架可以自定义的部分有:请求方式(默认为Getuser-agent为谷歌浏览器的设置),可以通过实现RequestSet接口来自定义请求方式储存方式(默认储存在f盘的html文件夹下),...
    99+
    2023-05-30
    java 爬虫框架 ava
  • 使用Python实现简单的爬虫框架
    目录一、请求网页二、解析 HTML三、构建爬虫框架爬虫是一种自动获取网页内容的程序,它可以帮助我们从网络上快速收集大量信息。在本文中,我们将学习如何使用 Python 编写一个简单的...
    99+
    2023-05-19
    Python如何实现爬虫框架 Python爬虫框架 Python爬虫
  • nodeJS实现简单网页爬虫功能的实例(分享)
    本文将使用nodeJS实现一个简单的网页爬虫功能 网页源码 使用http.get()方法获取网页源码,以hao123网站的头条页面为例 http://tuijian.hao123.com/hotrank ...
    99+
    2022-06-04
    爬虫 实例 简单
  • Python的Scrapy爬虫框架简单学习笔记
    一、简单配置,获取单个网页上的内容。 (1)创建scrapy项目 scrapy startproject getblog (2)编辑 items.py # -*- coding: utf-8 ...
    99+
    2022-06-04
    爬虫 学习笔记 框架
  • python爬虫框架feapder的使用简介
    目录1. 前言 2. 介绍及安装 3. 实战一下 3-1  创建爬虫项目3-2  创建爬虫 AirSpider3-3  配...
    99+
    2024-04-02
  • 上手简单,功能强大的Python爬虫框架——feapder
    简介 feapder 是一款上手简单,功能强大的Python爬虫框架,使用方式类似scrapy,方便由scrapy框架切换过来,框架内置3种爬虫: AirSpider爬虫比较轻量,学习成本低。面对一些数据...
    99+
    2022-06-02
    Python 爬虫框架 python feapder
  • Python爬虫基础之简单说一下scrapy的框架结构
    scrapy 框架结构 思考 scrapy 为什么是框架而不是库? scrapy是如何工作的? 项目结构 在开始爬取之前,必须创建一个新的Scrapy项目。进入您打算存储代码的目录...
    99+
    2022-06-02
    scrapy的框架结构 Python scrapy
  • Python爬虫框架-scrapy的使用
    Scrapy Scrapy是纯python实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。 Scrapy使用了Twisted异步网络框架来处理网络通讯,可以加快我们的下载速度,并且包含了...
    99+
    2022-06-02
    Python爬虫框架scrapy使用 Python scrapy使用
  • Golang爬虫框架colly的使用
    目录项目特性安装colly实例colly 的配置colly页面爬取和解析colly框架重构爬虫Golang爬虫框架 colly 简介 colly是一个采用Go语言编写的Web爬虫框架...
    99+
    2024-04-02
  • springboot+WebMagic+MyBatis爬虫框架的使用
    目录1.添加maven依赖2.项目配置文件 application.properties3.数据库表结构4.实体类5.mapper接口6.CrawlerMapper.xml文件7.知...
    99+
    2024-04-02
  • 爬虫框架 Feapder 和 Scrapy 的对比分析
    目录一、scrapy 分析1. 解析函数或数据入库出错,不会重试,会造成一定的数据丢失2. 运行方式,需借助命令行,不方便调试3. 入库 pipeline,不能批量入库二、scrap...
    99+
    2024-04-02
  • 神器啊!比requests还好用的Python高效爬虫框架!
    最近公司 Python 后端项目进行重构,整个后端逻辑基本都变更为采用"异步"协程的方式实现。看着满屏幕经过 async await(协程在 Python 中的实现)修饰的代码,我顿时感到一脸懵逼,不知所措。虽然之前有了解过"协程"是什么...
    99+
    2023-05-14
    Python Requests 爬虫框架
  • 怎么使用nodejs实现一个简单的网页爬虫功能
    这篇文章主要介绍了怎么使用nodejs实现一个简单的网页爬虫功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。网页源码  使用http.get()方法获取网页源码,以hao1...
    99+
    2023-06-06
  • Python的爬虫框架scrapy用21行代码写一个爬虫
    开发说明 开发环境:Pycharm 2017.1(目前最新) 开发框架:Scrapy 1.3.3(目前最新) 目标 爬取线报网站,并把内容保存到items.json里 页面分析 根据上图我们可以发...
    99+
    2022-06-04
    爬虫 框架 代码
  • NodeJs下的测试框架Mocha的简单介绍
    介绍和代码下载 Mocha在2011年发布,是目前最为流行的javascript框架之一,在本文我们重点介绍它在NodeJs上的使用。 如果你需要下载实例代码,可以通过去官网查找。https://mocha...
    99+
    2022-06-04
    框架 简单 测试
  • Python爬虫框架scrapy的使用示例
    这篇文章主要介绍了Python爬虫框架scrapy的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python可以做什么Python是一种编程语言,内置了许多有效的工...
    99+
    2023-06-14
  • 爬虫框架feapder的安装和使用
    这篇文章主要讲解了“爬虫框架feapder的安装和使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“爬虫框架feapder的安装和使用”吧! 1. 前言众所周知,Python 最流...
    99+
    2023-06-15
  • 怎么使用Python的Scrapy爬虫框架
    本篇内容介绍了“怎么使用Python的Scrapy爬虫框架”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Scrapy是Python开发的一个...
    99+
    2023-06-02
  • 常用的Python爬虫框架有哪些
    常用的Python爬虫框架有以下几个:1. Scrapy:Scrapy是一个高级的Python爬虫框架,提供了强大的爬虫功能和可扩展性,适用于大规模的数据抓取。2. BeautifulSoup:BeautifulSoup是一个用于解析H...
    99+
    2023-08-11
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作