js爬蟲心得


第一步:分析要爬的網站:包括是否需要登陸、點擊下一頁的網址變化、下拉刷新的網址變化等等
第二步:根據第一步的分析,想好爬這個網站的思路
第三步:爬好所需的內容 保存

爬蟲過程中用到的一些包:

(1)const request =  require('superagent'); // 處理get post put delete head 請求  輕量接http請求庫,模仿瀏覽器登陸

(2)const cheerio = require('cheerio'); // 加載html
(3)const fs = require('fs'); // 加載文件系統模塊 將數據存到一個文件中的時候會用到

fs.writeFile('saveFiles/zybl.txt', content, (error1) => { // 將文件存起來 文件路徑 要存的內容 錯誤
if (error1) throw error1;
// console.log(' text save ');
});

this.files = fs.mkdir('saveFiles/simuwang/xlsx/第' + this.page + '頁/', (error) => {
if (error) throw error;
}); //創建新的文件夾
//向新的文件夾里面創建新的文件
const writeStream = fs.createWriteStream('saveFiles/simuwang/xlsx/' + '第' + this.page + '頁/' + xlsxTitle + '.xlsx', ['a']);
//向新的文件里面寫入內容
for (let i = 0; i < value1.length; i += 1) {
writeStream.write(xlsxTitle + '\t' + this.getLocalTime(value1[i][0] / 1000)
+ '\t' + value1[i][1] + '\t' + this.getLocalTime(value2[i][0] / 1000)
+ '\t' + value2[i][1] + '\t' + this.getLocalTime(value3[i][0] / 1000)
+ '\t' + value3[i][1] + '\t');
}
//寫入完內容之后及時關閉流,如果不關閉,當爬取很多的文件的時候會出現錯誤,文件里面寫不進去內容
writeStream.end();

(4)const fs = require('graceful-fs'); // 將文件存為xlse

const writeStream = fs.createWriteStream('saveFiles/trader.xlsx'); //新建xlsx文件

writeStream.write(title);//像slsx里面寫入內容

(5)const Promise = require('bluebird'); //異步處理

(6)const Nightmare = require('nightmare');//一個高層次的瀏覽器自動化圖書館 先要安裝phantomjs 然后在裝nightmare

(7)const co = require('co');

爬蟲的相關思路:

(1)獲取首頁面的所需內容
(2)在首頁面的所有內容里面獲取所需內容的鏈接
(3)將(2)里面的鏈接存到一個list里面去
(3)新寫一個function,采用.pop()方法,用來取通過鏈接得到的新的內容
(4)判斷list.length是否大於0,
(5)如果不是,開始爬子頁面 並且調用該方法
(6)如果list的長度為0,就說明這一頁爬完了,開始下一頁,則將url改變
(7)重復(2)(3)(4)(5)(6)直至所有頁面爬完


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM