博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node.js 爬虫
阅读量:6620 次
发布时间:2019-06-25

本文共 2063 字,大约阅读时间需要 6 分钟。

pc.js 代码

var http=require ("http");var url="http://sports.sina.com.cn/nba/1.shtml"; http.get(url,(res)=>{     var html="";     res.on("data",function (chunk) {         html+=chunk;     });     res.on("end",function () {         console.log(html);     }); //    后台返回的数据,携带chunk数据 }).on("error",(e)=>{     console.log(e.message); //    如果在访问过程中有错误,输出错误信息 });

爬取

运行:
node pc.js
只能爬出来 网页的源代码
此处需要一个npm 库

这是一个用正则来筛选信息的库

npm install cheerio

pc1.js 代码

var http=require ("http");var cheerio=require("cheerio");var url="http://sports.sina.com.cn/nba/1.shtml"; http.get(url,(res)=>{     var html="";     res.on("data",function (chunk) {         html+=chunk;     });     res.on("end",function () {         // console.log(html);         var $=cheerio.load(html);         console.log($("#right a").html());         $("#right a").each(function () {             console.log($(this).attr("href"));         });     }); //    后台返回的数据,携带chunk数据 }).on("error",(e)=>{     console.log(e.message); //    如果在访问过程中有错误,输出错误信息 });

运行:

node pc.js

能获取到网页的href标签内容

pc2.js

var http=require ("http");var cheerio=require("cheerio");var fs=require("fs");var url="http://sports.sina.com.cn/nba/1.shtml";function httpGet(url,cb) {    var html="";    http.get(url,function (res) {        res.on("data",function (chunk) {            html+=chunk;        });        res.on("end",function () {            cb(html);        })    }).on("error",function (e) {        console.log(e.message);    });    return html;}httpGet(url,function (html) {    var $=cheerio.load(html);    $("#right a").each(function (index) {        var newUrl=$(this).attr("href");        httpGet(newUrl,function (body) {            var jq=cheerio.load(body);            fs.writeFile(`./news/${index}.txt`,jq("#artibody").text(),function (err) {                //用node.js 把获取到的text放入一个news文件夹                if(err){                    return console.log(err.message);                }                console.log("完成");            })        })    })});

运行:

node pc.js

一个封装好的httpGet函数 并且用 node.js 里边的 fs.writeFile函数 将获取到的数据 放在一个new的文件夹中

转载地址:http://oqupo.baihongyu.com/

你可能感兴趣的文章
final+基本类型导致只编译常量类引起的错误
查看>>
分库分表的几种常见玩法及如何解决跨库查询等问题
查看>>
把GPS经纬度放入两个字符串,写入文件
查看>>
Java操作MongoDB实现CRUD
查看>>
给js文件传参数
查看>>
tomcat web.xml启动加载类
查看>>
Linux 配置SSH信任
查看>>
【九度OJ1352】|【剑指offer41】和为S的两个数字
查看>>
《android-文件大小》
查看>>
HTTPS的工作原理
查看>>
PhoneGap使用PushPlugin插件实现消息推送
查看>>
Boyer-Moore 算法介绍
查看>>
关于Java中的单例模式
查看>>
datepicker
查看>>
CentOS 7输入startx无法启动图形化界面
查看>>
#51CTO学院四周年# 终于在这里遇到你
查看>>
Java学习笔记 1—命名规则、数据类型、运算符
查看>>
FusionCharts入门教程,使用指南
查看>>
我的友情链接
查看>>
数组的一些方法
查看>>