nodejs制作爬虫程序

大桥的前端日志      2022-02-09     565

关键词:

在nodejs中,可以通过不断对服务器进行请求,以及本身的fs  =》filesystem 模块和clientRequest模块对网站的资源进行怕取,目前只做到了对图片的趴取!视频文件格式各异,有的视频网站上视频可能是加密过的。无法爬取来;

‘use strict‘;
const http = require(‘http‘);
const fs = require(‘fs‘);
const path = require(‘path‘);
// 创建一个clientRequest对象
// const cr = http.get(‘http://www.baidu.com‘);
// cr.on(‘response‘, (res) => {
//     console.log(‘服务端接受到我的请求了‘);
//     console.log(res);
// })
// 需要将所有的img标签对应的src属性值提取出来
//再次发起请求,将突破保存在本地的磁盘上面;
//给定一个url,将其下载到本地磁盘;封装一个函数
//不断调用这个函数;使用正则表达式,提取所需要的字符串;
// const cr = http.get(‘http://www.dbmeinv.com/‘, (res) => {
//     let str;
//     // 注册data流事件;
//     res.on(‘data‘, (chunk) => {
//         str += chunk;
//     });
//     //注册end事件;
//     res.on(‘end‘, () => {
//         console.log(str);
//     })
// })
// const cr = http.get(‘‘);
// cr.on(‘response‘, (res) => {
//     console.log(‘服务端接受到我的请求了‘);
//     console.log(res);
//     let data = ‘‘;
//     res.on(‘data‘,(chunk)=>{
//         data += chunk;
//     });
//     res.on(‘end‘,()=>{
//         console.log(data);
//     })
// });

    for(let i =1;i<17;i++) {
        // let num = Math.random()*12000+
        let url =‘https://user.qzone.qq.com/812551954‘;
        // console.log(url);
        down(url);
    }
    function down(url){
        http.get(url,(res)=>{
            let data = ‘‘;
            res.on(‘data‘,(chunk)=>{
                data += chunk;
            });
            res.on(‘end‘,()=>{
                //文件
                let regexp = /src="(http://[0-9a-zA-Z./]+jpg)"/g;
                let arr = [];
                let temp;
                while((temp=regexp.exec(data))!=null){
                    arr.push(temp[1]);
                }
                // console.log(arr);
                arr.forEach((item)=>{
                    download(item);
                })
            })
        });
    }


//用正则表达式去匹配对应的图片资源;

// 首先编写函数下载单张图片
// 目标地址
// 获取目标页面的所有内容; 包括html等;
function download(url) {
    // let url = "http://ww2.sinaimg.cn/large/0060lm7Tgy1fe69ac1v44j30dw0k3gof.jpg"
    //创建一个clientRequest对象,向服务器发送请求;
    http.get(url, (res) => {
        res.setEncoding(‘binary‘);
        let data = ‘‘;
        //数据开始传输事件;
        res.on(‘data‘, (chunk) => {
            data += chunk;
        });
        //数据传输结束的时候,将其接受
        res.on(‘end‘, () => {
            let pic = path.basename(url);
            //此时图片的内容已经在data中了;
            //图片存储的路径
            let file = path.join(‘pic‘, pic);
            fs.writeFile(file, data, ‘binary‘, (err) => {
                if (err) throw err;
                console.log(`图片${pic}下载成功`);
            })
        })
    })
}

 

如何使用nodejs做爬虫程序

参考技术A抓取网站上的妹子照片。第三方模块superagent:第三方Nodejs模块,用于处理服务器和客户端的Http请求。cheerio:为服务器端定制的Jquery实现。思路通过superagent获取目标网站的dom通过cheerio对dom进行解析,获得通用布局。如果... 查看详情

nodejs爬虫前端爬虫系列

言归正传,前端同学可能向来对爬虫不是很感冒,觉得爬虫需要用偏后端的语言,诸如php,python等。当然这是在nodejs前了,nodejs的出现,使得Javascript也可以用来写爬虫了。由于nodejs强大的异步特性,让我们可以轻松以异步高并... 查看详情

如何使用nodejs做爬虫程序

参考技术A.var request = require('request');var cheerio = require('cheerio');var URL = require('url-parse');var START_URL = "http://www.baidu.com";var SEARCH_WORD = "stemming";va... 查看详情

如何使用nodejs做爬虫程序

目标抓取网站上的妹子照片。第三方模块superagent:第三方Nodejs模块,用于处理服务器和客户端的Http请求。cheerio:为服务器端定制的Jquery实现。思路通过superagent获取目标网站的dom通过cheerio对dom进行解析,获得通用布局。如果只是... 查看详情

使用nodejs制作chrome扩展

】使用nodejs制作chrome扩展【英文标题】:makechromeextensionusingnodejs【发布时间】:2021-11-0316:04:05【问题描述】:问题背景我们正在构建Chrome扩展程序。并且我们需要在这个过程中获取python代码。我知道的我知道python代码可以用NodeJS... 查看详情

如何使用nodejs做爬虫程序

参考技术A目标抓取网站上的妹子照片。第三方模块superagent:第三方Nodejs模块,用于处理服务器和客户端的Http请求。cheerio:为服务器端定制的Jquery实现。思路通过superagent获取目标网站的dom通过cheerio对dom进行解析,获得通用布局。... 查看详情

如何使用nodejs做爬虫程序

《使用superagent与cheerio完成简单爬虫》目标建立一个lesson3项目,在其中编写代码。当在浏览器中访问http://localhost:3000/时,输出CNode(https://cnodejs.org/)社区首页的所有帖子标题和链接,以json的形式。输出示例:["title":"【... 查看详情

nodejs爬虫入门

1.写在前面往常都是利用Python/.NET语言实现爬虫,然现在作为一名前端开发人员,自然需要熟练NodeJS。下面利用NodeJS语言实现一个糗事百科的爬虫。另外,本文使用的部分代码是es6语法。实现该爬虫所需要的依赖库如下。request:利... 查看详情

如何用nodejs开发爬虫程序?

安装必要的模块:Express基于 Node.js 平台,快速、开放、极简的web开发框架。它提供一系列强大的特性,帮助你创建各种Web和移动设备应用。Request简化HTTP请求的处理,支持OAuth的签名请求,很好很强大。Cheerio为服务器特别定... 查看详情

如何使用nodejs做爬虫程序

目标抓取网站上的妹子照片。第三方模块superagent:第三方Nodejs模块,用于处理服务器和客户端的Http请求。cheerio:为服务器端定制的Jquery实现。思路通过superagent获取目标网站的dom通过cheerio对dom进行解析,获得通用布局。如果只是... 查看详情

《作文精编大全》,python程序员用爬虫制作的(代码片段)

文章目录⛳️实战场景⛳️采集列表页⛳️提取列表作文地址⛳️提取作文8内容⛳️实战场景本篇博客又是一个Python爬虫实战,目标站点时作文吧,一个充满作文的站点zuowen8.com,由于其站点有那么一点点的付费需求... 查看详情

简单实现nodejs爬虫工具

约30行代码实现一个简单nodejs爬虫工具,定时抓取网页数据。 使用npm模块request---简单http请求客户端。(轻量级)fs---nodejs文件模块。 index.jsvarrequest=require(‘request‘);varfs=require("fs");varJJurl="https://recommender-api-ms.juejin.im/v 查看详情

nodejs爬虫简单编写

nodejs爬虫原理,先用request请求页面内容,把内容获取到并iconv-lite设置编码格式,再用cheerio进行类似dom操作合并内容,转换写入文件中1)获取单页面数据:varfs=require(‘fs‘)varrequest=require(‘request‘)variconvLite=require(‘iconv-lite‘)v... 查看详情

json笔记:「饭否精选·日历」微信小程序制作记录-爬虫部分:0。饭否精选格式样本(代码片段)

查看详情

nodejs爬虫入门

nodejs是服务器端的语言,所以可以像python一样对网站进行爬取。准备1.项目初始化,执行npminit,来初始化package.json2.npminstallrequest—save3.npminstallasync--save文件中需要引入的包varrequest=require(‘request‘);varfs=require(‘fs‘);varasync=requi... 查看详情

nodejs爬虫笔记

 目标:爬取慕课网里面一个教程的视频信息,并将其存入mysql数据库。以http://www.imooc.com/learn/857为例。 一、工具 1.安装nodejs:(操作系统环境:WiN764位)   在Windows环境下安装相对简单(ps:其他版本我也不太清... 查看详情

基于微信小程序+爬虫制作一个表情包小程序(代码片段)

跟朋友聊天斗图失败气急败坏的我选择直接制作一个爬虫表情包小程序,从源头解决问题,从此再也不用担心在斗图中落入下风精彩专栏持续更新↓↓↓微信小程序实战开发专栏一、API1.1项目创建1.2图片爬虫帮助类1.3测... 查看详情

python爬虫与opencv结合,制作一款自己的拍照翻译程序!(代码片段)

...用到python爬虫?还记得我以前写过的一篇文章:制作一款属于自己的翻译小软件,Python解决有道JS加密!然而咱们的Opencv可以连接咱们手 查看详情