js爬虫心得
第一步:分析要爬的網站:包括是否需要登陸、點擊下一頁的網址變化、下拉刷新的網址變化等等
第二步:根據第一步的分析,想好爬這個網站的思路
第三步:爬好所需的內容 保存
爬蟲過程中用到的一些包:
(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)直至所有頁面爬完
轉載于:https://www.cnblogs.com/ryt103114/p/6085271.html
總結
- 上一篇: 买土豆的故事
- 下一篇: 16代表啥_16代表的爱情恋爱含义16代