描述:
爬取小试
爬取的数据段
定位的数据段
代码:
const http = require('https')
const fs = require('fs')
//引入node.js内置的文件模块 实现数据爬取后的输出
const cheerio = require('cheerio')
//cheerio是nodejs的抓取页面模块,为服务器特别定制的,需要npm
//快速、灵活、实施的jQuery核心实现。适合各种Web爬虫程序。
const url = 'https://bj.zu.anjuke.com/'
//输入所要爬取的网站
http.get(url, (res) => {
res.setEncoding('utf8')
let result = ''
res.on('data', (chunk) => {
result += chunk
})
res.on('end', (chunk) => {
let data = spider(result)
// console.log(data)
fs.writeFileSync('./data/ajk.json', JSON.stringify(data))
})
})
//主要 处理所定位爬取的数据
function spider(html){
let $ = cheerio.load(html,{decodeEntities:false})//decide 处理字符
let dataList = []
$('.zu-itemmod').each((i, item) => {
let $item = $(item)
// 头部数据
let title = $item.find('img').attr('alt')
// img地址
let img = $item.find('img').attr('src')
// 描述信息
let desc_item = $item.find('.details-item').html()
// 价格数据
let price = $item.find('.zu-side strong').html()
dataList.push({ title, img , desc_item , price })
})
return dataList
}