摘要:入門級的爬蟲地址思否社區(qū)文章太多哪個是我想要的對比點贊數(shù)對比標(biāo)題不用害怕,自己動手用來實現(xiàn)爬蟲,麻麻再也不用擔(dān)心我學(xué)習(xí)選擇困難癥啦核心代碼寫入成功核心的代碼僅僅只有行哦配置代碼定義爬蟲的頁面定義存放的路徑定義元素范圍定義數(shù)據(jù)屬性具體元
入門級的node爬蟲
github地址:https://github.com/lll618xxx/...
思否社區(qū)文章太多?哪個是我想要的?對比點贊數(shù)or對比標(biāo)題
不用害怕,自己動手用node來實現(xiàn)爬蟲,麻麻再也不用擔(dān)心我學(xué)習(xí)選擇困難癥啦!
const superagent = require("superagent") const cheerio = require("cheerio") const xlsx = require("node-xlsx") const fs = require("fs") const options = require("./options") superagent.get(options.url) .then(res => { const bufferdata = [{ name: "sheet1", data: [options.attr.map((item, index, arr) => { return arr[index][2] })] }] const $ = cheerio.load(res.text); $(options.ele).each((index, item) => { let arr = [] options.attr.forEach((v, i, a) => { arr.push(a[i][1] ? $(item).find(a[i][0]).attr(a[i][1]) : $(item).find(a[i][0]).text()) }) bufferdata[0].data.push(arr) }) fs.writeFile(options.excelPath, xlsx.build(bufferdata), (err) =>{ if (err) throw err; console.log("寫入Excel成功"); }) }) .catch(err => { console.log(err) });
核心的代碼僅僅只有36行哦!
配置代碼const path = require("path") // 定義爬蟲的頁面 const url = "https://segmentfault.com/hottest/monthly" // 定義excel存放的路徑 const excelPath = path.join(__dirname, "result.xlsx") // 定義元素范圍 const ele = "div.wrapper div.news-list div.news__item-info" // 定義數(shù)據(jù)屬性 ["具體元素", "屬性", "別名"] const attr = [ ["a", "href", "鏈接"], ["span.votes-num", "", "點贊數(shù)"], ["h4.news__item-title", "", "標(biāo)題名字"], ["span.author a", "", "作者名字"], ]安裝依賴
npm i運行項目
cd node-reptile-simple && node index.js配置項(options.js)
url 定義爬蟲的頁面 excelPath 定義excel存放的路徑 ele 定義元素范圍 attr 定義數(shù)據(jù)屬性 ["具體元素", "屬性", "別名"]截圖
可以去github查看更完整的內(nèi)容
爬的不僅僅是思否,只有你想不到的,沒有我做不到的!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105933.html
摘要:前言之前斷斷續(xù)續(xù)學(xué)習(xí)了,今天就拿拉勾網(wǎng)練練手,順便通過數(shù)據(jù)了解了解最近的招聘行情哈方面算是萌新一個吧,希望可以和大家共同學(xué)習(xí)和進步。 前言 之前斷斷續(xù)續(xù)學(xué)習(xí)了node.js,今天就拿拉勾網(wǎng)練練手,順便通過數(shù)據(jù)了解了解最近的招聘行情哈!node方面算是萌新一個吧,希望可以和大家共同學(xué)習(xí)和進步。 一、概要 我們首先需要明確具體的需求: 可以通過node index 城市 職位來爬取相關(guān)信...
摘要:爬取的數(shù)據(jù)存入表格分析要爬取的內(nèi)容的網(wǎng)頁結(jié)構(gòu)是庫寫入表所用讀取表所用通過解析文檔為用戶提供需要抓取的數(shù)據(jù)改變標(biāo)準(zhǔn)輸出的默認編碼我們開始利用來獲取網(wǎng)頁并利用解析網(wǎng)頁返回的是狀態(tài)碼,加上以字節(jié)形式二進制返回數(shù)據(jù)。 爬取的數(shù)據(jù)存入Excel表格 分析要爬取的內(nèi)容的網(wǎng)頁結(jié)構(gòu): showImg(https://segmentfault.com/img/bVbsFt6?w=1644&h=1012)...
摘要:使用中庫進行的生成操作近日,應(yīng)領(lǐng)導(dǎo)要求,從網(wǎng)上抓了一大批數(shù)據(jù)存入了數(shù)據(jù)庫,可是媽媽批,市場妹子要的是表格啊,畢竟妹子的話還是要聽的關(guān)鍵人家語氣蠻好的,就從網(wǎng)上查一些資料。 ## 使用nodejs中node-xlsx庫進行excel的生成操作 ## 近日,應(yīng)領(lǐng)導(dǎo)要求,從網(wǎng)上抓了一大批數(shù)據(jù)存入了數(shù)據(jù)庫,可是媽媽批 ,市場妹子要的是excel表格啊,畢竟妹子的話還是要聽的(關(guān)鍵人家語氣蠻好的...
摘要:分布式爬蟲框架詳解隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會大眾參與社會生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請求及響應(yīng)。 scrapy-redis分布式爬蟲框架詳解 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會大眾參與社會生活的一種重要信息渠道。由于互聯(lián)網(wǎng)是開放的,每個人都可以在網(wǎng)絡(luò)上...
閱讀 2524·2021-11-19 09:59
閱讀 2053·2019-08-30 15:55
閱讀 962·2019-08-29 13:30
閱讀 1368·2019-08-26 10:18
閱讀 3111·2019-08-23 18:36
閱讀 2416·2019-08-23 18:25
閱讀 1194·2019-08-23 18:07
閱讀 463·2019-08-23 17:15