1. 实验内容
- 完成最少一个目标网站的分析和爬虫设计;
- 爬取不少于100条数据(每条数据包括最少3个字段,标题、内容和时间),并存储在数据库中;
- 完成对数据库中爬取数据内容或标题的搜索功能,搜索结果以表格形式展示在前端页面中;
- 完成对搜索内容的时间热度分析。
2. 实验任务
- 爬取数据:
- 利用Nodejs,实现爬虫的基本通用框架;
- 利用正则表达式,对要爬取的网站进行解析;
- 得到结构化的数据。
- 数据库交互。
- 新闻检索。
- 前端设计。
3. 实验步骤
1. 爬取数据
-
爬虫基本框架的实现
在这里,爬虫的实现采用了Nodejs的Cheerio模块。
引入需要的模块:
// 引入需要的模块 var fs = require('fs'); var myRequest = require('request'); var myCheerio = require('cheerio'); var myIconv = require('iconv-lite'); require('date-utils'); var db = ('db.js'); // 封装好的数据库的相关操作
首先,对request进行封装。
function request(url, callback) { var options = { url: url, encoding: null, //proxy: 'http://x.x.x.x:8080', headers: headers, timeout: 10000 // } myRequest(options, callback) }
其中,headers是给请求设置的报头,用于防止网站屏蔽爬虫。
var headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36' }
由于要在多个网站进行爬虫,所以我想用面向对象的方式来写代码,利用一个