暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

node + crawler 实现爬虫

晓组智 2021-03-16
1354

基于node.js + crawler 包实现爬虫技术


背景知识:

crawler中文文档

https://node-crawler.readthedocs.io/zh_CN/latest/

开源demo:

https://gitee.com/zhui_i/reptile_store.git


案例:

main.js 核心文件,用于将 DB 及 retile 文件 整合一起 启动

    var DB = require('../DB/mode')
    const { getData } = require('./retile')
    getData().then((resp) => {
    insertData(resp.data)
    })
    /**
    * DB model
    */
    function insertData(data) {
    // console.log('getData', data.Data)
    let datas = data.Data
    // 通过 DB.getConnection 获得链接
    DB.getConnection(function (err, connection) {
    if (err) {
    console.error(err)
    return
    }
    let post = []
    for (let i in datas) {
    datas[i].forEach((d) => {
    let dArr = []
    for (j in d) {
    dArr.push(d[j])
    }
    post.push(dArr)
    })
    }
    console.log('post', post)
    var query = connection.query(
    'INSERT INTO newsType VALUES ?',
    [post],
    function (err, result) {
    // Neat!
    if (err) console.debug('inserted-err', err)
    else console.debug('inserted-result', result)
    connection.release() // 释放该链接,把该链接放回池里供其他人使用
    }
    )
    DB.end(function (err) {
    // all connections in the DB cluster have ended
    console.log('结束链接')
    })
    })
    }



    retile.js 用来 执行爬虫 并将 数据 存储至内存;

      var axios = require('axios')
      var fs = require('fs')
      var cheerio = require('cheerio')
      var request = require('request')
      axios.defaults.headers = {
      accept: '*/*',
      'accept-encoding': 'gzip, deflate, br',
      'accept-language': 'zh-CN,zh;q=0.9',
      channelid: '28',
      'x-channel': '28',
      'x-channel-type': '1',
      }
      const getData = () =>
      axios.get('https://www.tophub.fun:8888/GetAllType', {
      params: {
      page: 1,
      size: 10,
      sort: 'create_time;',
      },
      })
      module.exports = {
      getData: getData,
      }


      DB.js 数据库 读写文件

        const mysql = require('mysql') // mysql node driver
        const mysqlConfig = require('./config')
        // 初始化数据库配置, mysql端口号默认为3306
        const pool = mysql.createPool({
        connectionLimit: 10, // 连接数量
        host: mysqlConfig.host,
        user: mysqlConfig.user,
        password: mysqlConfig.password,
        database: mysqlConfig.database,
        })
        module.exports = pool
          module.exports = {
          host: 'localhost',
          user: 'root',
          password: 'WANG1996',
          database: 'reptileDB',
          port: 3306,
          }


          数据库
          文章转载自 晓组智,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论

          深圳SEO优化公司益阳网站改版价格毕节网站建设价格平顶山企业网站设计醴陵网络营销报价镇江网站优化按天计费哪家好绵阳网站优化软件推荐南宁企业网站建设哪家好海东设计公司网站推荐枣庄百度标王哪家好衡水seo网站推广公司深圳seo网站优化苏州SEO按天扣费公司承德网站优化推广价格广州关键词按天收费推荐仙桃seo网站优化报价益阳如何制作网站公司宜昌seo排名哪家好铜陵网页制作哪家好六安SEO按效果付费推荐宝鸡网站设计模板绍兴网站设计推荐玉林网站优化报价沧州百度网站优化报价南宁营销型网站建设价格普洱百搜标王多少钱菏泽seo优化松原优化推荐滁州网络广告推广随州外贸网站建设哪家好宿迁企业网站建设价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

          深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化