Node.js爬虫初试———安居客的数据爬取

127 篇文章 2 订阅
111 篇文章 1 订阅

描述:

爬取小试

爬取的数据段

定位的数据段

 

代码:


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
}

爬取结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值