欢迎使用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
阅读全文
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- bzoj 1003 [ZJOI2006]物流运输
- JVM虚拟机问题--为什么要有两个survisor
- 欢迎使用CSDN-markdown编辑器
- freemarker 的debug
- BZOJ 2733: [HNOI2012]永无乡(线段树启发式合并)
- 欢迎使用CSDN-markdown编辑器
- Hello ! CSDN !
- Eclipse重命名报错:Found potential matches. Please review changes on the preview page.
- Keil Debug(printf) Viewer的使用
- freemarker 每个 {$name} 最好都加上默认值
- 设计模式-组合模式 C++实现
- 初次用myeclipse连接tomcat心得
- Java数据结构详解(二)-List接口
- FreeMarker 与 Struts2 的结合