# NodeJs-crawler
**Repository Path**: coolwriter/NodeJs-crawler
## Basic Information
- **Project Name**: NodeJs-crawler
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-05-24
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# NodeJs-crawler
## 使用说明
-------------
1.下载代码,npm install
2.node index.js即可
3.停止Cltr+c
## 博文
好的,我们从爬虫流程开始分析我们需要的一些模块。
首先,我们需要发送请求获得页面,在这里呢,我们用到了request-promise模块。
const rp = require("request-promise"), //进入request-promise模块
async getPage(URL) {
const data = {
url,
res: await rp(
url: URL
})
};
return data //这样,我们返回了一个对象,就是这个页面的url和页面内容。
}
其次,解析页面,我们使用一个叫做Cheerio的模块将上面返回的对象中的res解析成类似JQ的调用模式。Cheerio使用一个非常简单,一致的DOM模型。因此解析,操作和渲染非常高效。初步的端到端基准测试表明cheerio 比JSDOM快大约8倍。
const cheerio = require("cheerio");//引入Cheerio模块
const $ = cheerio.load(data.res); //将html转换为可操作的节点
此时,我们要对我们即将进行爬取的页面进行分析。[www.mzitu.com/125685](www.mzitu.com/125685),这是我们进行爬取的网址,F12查看DOM结构,根据这个结构我们可以使用$(".main-image").find("img")[0].attribs.src来爬取这张图片的地址(如果不知道为什么是attribs.src的话可以一步一步console.log()一下看看)。
let headers = {
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
"Cache-Control": "no-cache",
Host: "i.meizitu.net",
Pragma: "no-cache",
"Proxy-Connection": "keep-alive",
Referer: data.url,//根据爬取的网址跟换
"Upgrade-Insecure-Requests": 1,
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.19 Safari/537.36"
};
以上就是我的全部思路。
总结:
至于后续操作,比如存到分类保存到本地和MongoDB数据库这样的操作,我下次再写,请关注我。
郑重提升,爬虫虽好,一定不能触犯法律。
如果本本文触犯您的利益,请留言。
如果觉得本文不错,不要吝啬您的点赞和关注。谢谢。