欢迎使用CSDN-markdown编辑器

来源:互联网 发布:切片图片上传到淘宝 编辑:程序博客网 时间:2024/06/05 02:20

nodejs爬虫

最近接触了一下nodejs的爬虫。
至于为什么我会想到用nodejs去写,因为本身我是一个前端的学员,PYTHON什么的是不会学的,java什么的也不会用,只能用javascript做点力所能及的事情。

但是话说回来,nodejs爬虫对于我这样一个小白来讲真的不算难,js的语法加上几个node模块可以简单实现nodejs的爬虫信息获取。

简单的代码

var http = require('http');var fs = require('fs');var cheerio = require('cheerio');var request = require('request');

以上几个模块就是我所用到的,第一次写不成熟的博客请随意拍。

npm install --save requestnpm install cheerio

简单说一下,cheerio类似jquery,可以方便的抓取页面元素。
在nodejs的开发中,有时需要后台去调用其他服务器的接口,这个时候,就需要发送HTTP请求了。有一个简单的工具可以用,Simplified HTTP request client,可以比较方便的模拟请求。
var url = "http://crjy.hlju.edu.cn/info/1458/3080.htm";
我将url设定为我们校园网的一个静态页面,根据尾号数字的改变可以更改不同的页面,做一个参数每次循环+1可实现抓取。

function startRequest(x) {    http.get(x, function (res) {        var html = '';                var titles = [];        res.setEncoding('utf-8');         res.on('data', function (chunk) {            html += chunk;        });        res.on('end', function () {            var $ = cheerio.load(html);            var time = $('span.timestyle113332').text().trim();            var news_item = {                title: $('td.titlestyle113332').text().trim(),                Time: time,                i: i = i + 1,            };            console.log(news_item);                 var news_title = $('td.titlestyle113332').text().trim();            savedContent($,news_title);              var nextLink="http://crjy.hlju.edu.cn/info/1458/" + $("td.contextstyle113332 a").attr('href');            console.log(nextLink);            str1 = nextLink.split('-');             str = encodeURI(str1[0]);            if (i <= 500) {                fetchPage(str);            }        });    }).on('error', function (err) {        console.log(err);    });}

————————
明天继续9.21

原创粉丝点击