cherrio模块

安装
  1. cnpm install cherrio
使用方法
  1. const cheerio = require('cheerio')
  2. const $ = cheerio.load('<h2 class="title">Hello world</h2>')
  3. $('h2.title').text('Hello there!')
  4. $('h2').addClass('welcome')
  5. $.html()
  6. //=> <html><head></head><body><h2 class="title welcome">Hello there!</h2></body></html>

request模块

  1. var request = require('request');
  2. request('http://www.google.com', function (error, response, body) {
  3. console.log('error:', error); // Print the error if one occurred
  4. console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
  5. console.log('body:', body); // Print the HTML for the Google homepage.
  6. });

爬虫系统 request cheerio

  1. 爬取一个网站的内容信息
  2. 分析内容
  3. 储存数据 下载图片

简单的爬虫

  1. //发起服务端请求 请求一个网页
  2. const request = require('request')
  3. const fs= require('fs')
  4. const path= require('path')
  5. const cheerio = require('cheerio')
  6. //以百度为例
  7. let url ='https://www.baidu.com/'
  8. request(url,(err,response,body)=>{
  9. console.log(err)
  10. //把爬取到的body 写入新文件中
  11. fs.writeFile(path.join(__dirname,'./baidu.html'),body,(err)=>{
  12. if(err){
  13. console.log('爬取失败')
  14. }else{
  15. console.log('爬取成功')
  16. }
  17. })
  18. //根据一个网址 下载对应的网页文件
  19. const $ = cheerio.load(body)
  20. let imgs = []
  21. // 用正则判断数组中的路径是否存在https
  22. var Reg = /(http[s]?|ftp)/;
  23. $('img').each((index, ele) => { // 遍历所有
  24. var src = $(e).attr('src');
  25. if (!Reg.test(src)) {
  26. src = src.replace(/\/{2}/, 'https://') //正则判断
  27. }
  28. imgs.push(src)
  29. })
  30. // 下载数组里的图片
  31. for (let index = 0; index < imgs.length; index++) {
  32. if (imgs[index].indexOf('png') !== -1) {
  33. request(imgs[index]).pipe(fs.createWriteStream(`./img/${index}.png`)) //用下标命名,要建好img文件夹
  34. };
  35. }
  36. })

node - 简单的爬虫案例的更多相关文章

  1. node 简单的爬虫

    基于express爬虫, 1,node做爬虫的优势 首先说一下node做爬虫的优势 第一个就是他的驱动语言是JavaScript.JavaScript在nodejs诞生之前是运行在浏览器上的脚本语言, ...

  2. 简单python爬虫案例(爬取慕课网全部实战课程信息)

    技术选型 下载器是Requests 解析使用的是正则表达式 效果图: 准备好各个包 # -*- coding: utf-8 -*- import requests #第三方下载器 import re ...

  3. NodeJs实现简单的爬虫

    1.爬虫:爬虫,是一种按照一定的规则,自动地抓取网页信息的程序或者脚本:利用NodeJS实现一个简单的爬虫案例,爬取Boss直聘网站的web前端相关的招聘信息,以广州地区为例: 2.脚本所用到的nod ...

  4. 每天几分钟跟小猫学前端之node系列:用node实现最简单的爬虫

    先来段求分小视频: https://www.iesdouyin.com/share/video/6550631947750608142/?region=CN&mid=6550632036246 ...

  5. 用node.js从零开始去写一个简单的爬虫

    如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定, ...

  6. Python 简单爬虫案例

    Python 简单爬虫案例 import requests url = "https://www.sogou.com/web" # 封装参数 wd = input('enter a ...

  7. 纯手工打造简单分布式爬虫(Python)

    前言 这次分享的文章是我<Python爬虫开发与项目实战>基础篇 第七章的内容,关于如何手工打造简单分布式爬虫 (如果大家对这本书感兴趣的话,可以看一下 试读样章),下面是文章的具体内容. ...

  8. nodejs实现最简单的爬虫

    本文将以抓取百度搜索结果中关键词的相关搜索为例子,教会大家以nodejs制作最简单的爬虫:  开始之前呢,先来个公众号求粉:      将使用的node模块及属性介绍:   request:     ...

  9. 视频博文结合的教程:用nodejs实现简单的爬虫

    教学视频地址: https://v.qq.com/x/page/b0643tut4ze.html 前言   本喵最近工作中需要使用node,并也想晋升为全栈工程师,所以开始了node学习之旅,在学习过 ...

随机推荐

  1. String类方法的使用

    String类的判断功能: boolean equals(Object obj)  //比较字符串内容是否相同(区分大小写). boolean equalsIgnoreCase(String str) ...

  2. UGUI源码之EventSystem

    今天研究下UGUI的源码,先从EventSystem入手.EventSystem是用来处理点击.键盘输入以及触摸等事件的. 1.BaseInputModule EventSystem开头声明了两个变量 ...

  3. 微信小程序点击图片放大

    WXML: <view class='imgList'> <view class='imgList-li' wx:for='{{imgArr}}'> <image cla ...

  4. es5中数组的遍历方法

    //for循环 const arr = [1,2,3,4,5] for(let i = 0; i < arr.length; i++){ if(arr[i] === 2){ //break // ...

  5. 求二叉树的深度,从根节点到叶子节点的最大值,以及最大路径(python代码实现)

    首先定义一个节点类,包含三个成员变量,分别是节点值,左指针,右指针,如下代码所示: class Node(object): def __init__(self, value): self.value ...

  6. 遗传编程GP-地图路径寻路

    本文介绍的是基于GP,并非A*算法,算是另类实现吧. 先看看地图定义,在文本文件中定义如下字符串,代表30列11行大小的地图 初始位置在左上角(0,0) ,值为1的是允许走的通的路,目标位置为右下角( ...

  7. C语言进阶——编译预处理指令

    编译预处理指令 • #开头的是编译预处理指令 • 它们不是C语⾔的成分,但是C语⾔程序离不开它们 • #define⽤来定义⼀个宏 #define • #define <名字> <值 ...

  8. kuangbin专题专题十一 网络流 POJ 3436 ACM Computer Factory

    题目链接:https://vjudge.net/problem/POJ-3436 Sample input 1 3 4 15 0 0 0 0 1 0 10 0 0 0 0 1 1 30 0 1 2 1 ...

  9. Dappy如何防止DNS黑客入侵

    作者:Raphaël 译者注:Dappy是RChain生态中的DNS[域名系统(服务)协议].Dappy基于RChain的技术架构保障了域名系统的安全性. Dappy是一个用于文件和Web应用程序的去 ...

  10. 一文带你了解 HTTP 黑科技

    这是 HTTP 系列的第三篇文章,此篇文章为 HTTP 的进阶文章. 在前面两篇文章中我们讲述了 HTTP 的入门,HTTP 所有常用标头的概述,这篇文章我们来聊一下 HTTP 的一些 黑科技. HT ...