0人評分過此書

JavaScript 爬蟲新思路!從零開始帶你用 Node.js 打造 FB&IG 爬蟲專案

出版日期
2021/07/25
閱讀格式
PDF
書籍分類
學科分類
ISBN
9789864348008

文化部計次

借閱規則
借閱天數 14
選擇分享方式

推薦本館採購書籍

您可以將喜歡的電子書推薦給圖書館,圖書館會參考讀者意見進行採購

讀者資料
圖書館 桃園市立圖書館
* 姓名
* 身分
系所
* E-mail
※ 我們會寄送一份副本至您填寫的Email中
電話
※ 電話格式為 區碼+電話號碼(ex. 0229235151)/ 手機格式為 0900111111
* 請輸入驗證碼
本書內容改編自第12屆 iT 邦幫忙鐵人賽,AI&Data 組佳作網路系列文章──
《行銷廣告、電商小編的武器,FB & IG 爬蟲專案從零開始 》

 你知道 JavaScript 不僅能寫網頁還能夠爬蟲嗎?
 你受夠像機器人般蒐集資料的生活嗎?
 從新手村畢業的朋友想知道一個專案是如何進行的嗎?
 PM 們想知道工程師面對問題時在想什麼嗎?

 想知道這些答案嗎?想知道的話可以全部都給你。
 閱讀吧!我把所有的解答都放在書裡了!

【書籍特色】

從零開始!手把手建置 Mac/Windows 的專案環境

 擋住學習熱情的不是困難的工具,而是屢戰屢敗的環境建置!
 除了 step by step 帶你安裝環境,更讓你掌握每個工具的用途與原理。

循序漸進!每個章節都是一個里程碑

 每個章節都有明確的學習目標,讓讀者在閱讀與實作的過程中成長;
 並透過實務上的議題,培養獨立思考能力。

整合技術!完成屬於自己的爬蟲專案

 從架構上全面著手,提供多種解決問題的思路,打造擴充性強大的系統。
 透過需求訪談,你將發現──只有爬蟲技術是無法完善整個專案的!
 儲存資料的容器、定時執行的排程與爬蟲完成後的通知都是不可或缺的一環。
  Node.js x Selenium x Google Sheets x Schedule x LINE Notify

最後,習得爬蟲技能的你

 1. 向機械化的操作 Say Goodbye ~
 2. 蒐集海量資料不再是苦差事
 3. 比別人擁有更多技能優勢
  • PART 1 先了解專案需求,再思考如何實作
    • 01 需求訪談
      • 1.1 傾聽客戶的需求
      • 1.2 向客戶推薦解決問題的方法
    • 02 撰寫需求規格書
      • 2.1 專案分析
      • 2.2 需求規格
      • 2.3 新手接案的注意事項
      • 2.4 如何避免接案後無法完成功能交付的困境
  • PART 2 開發前環境介紹& 設定
    • 03 開發前環境介紹&設定
      • 3.1 Node.js
      • 3.2 nvm
      • 3.3 Git
      • 3.4 Yarn
      • 3.5 VSCode
  • PART 3 寫程式所需的基礎常識(Node.js)
    • 04 寫程式時該注意的基本原則
      • 4.1 正確的宣告變數
      • 4.2 有意義的命名
      • 4.3 避免重複的程式碼
      • 4.4 避免寫出大眾難以理解的程式
      • 4.5 好的註解
      • 4.6 錯誤處理&日誌(log)
    • 05 認識Node.js 專案
      • 5.1 建立Node.js 程式
      • 5.2 執行Node.js
      • 5.3 認識專案管家:「package.json」
      • 5.4 善用scripts(腳本)執行程式
      • 5.5 使用license 保護自己的權益
      • 5.6 取得筆者專案原始碼
    • 06 用Yarn 安裝及控管套件
      • 6.1 套件對工程師的幫助
      • 6.2 如何找出適合的套件
      • 6.3 安裝套件,觀察安裝後目錄結構的變化
      • 6.4 控制套件版本範圍
      • 6.5 下關鍵字找工具的方法
    • 07 善用「.env」管理環境變數,幫你快速遷移專案
      • 7.1 為什麼專案需要環境變數?
      • 7.2 環境變數的使用時機
      • 7.3 分析專案中哪些參數適合當環境變數
      • 7.4 學會使用環境變數
    • 08 在「.gitignore」設定不加入版控的資料
      • 8.1 慘痛經驗分享
      • 8.2 哪些檔案/ 資料夾不需要放入版控?
      • 8.3 在專案加入「.gitignore」
      • 8.4 透過VSCode 確認是否成功將檔案加入忽略清單
      • 8.5 為環境變數建立一個可以上傳的範例檔
  • PART 4 用selenium-webdriver 爬蟲網頁資訊
    • 09 爬蟲之前
      • 9.1 學習爬蟲對我有什麼好處?
      • 9.2 爬蟲前請注意這些事情避免違法
      • 9.3 選擇符合需求的爬蟲工具
    • 10 認識selenium-webdriver,操作所見即所得的爬蟲工具
      • 10.1 安裝selenium-webdriver 套件& 環境
      • 10.2 使用selenium-webdriver 套件開啟瀏覽器
      • 10.3 解決Windows 無法讀取chromedriver.exe 的問題
      • 10.4 解決Windows 開啟瀏覽器時跳出USB: usb_device_handle_win.cc 的錯誤
    • 11 爬蟲第一步,FB 先登入
      • 11.1 學會分析網頁結構 - 以FB 登入頁為範例
      • 11.2 打造自動登入FB 的小程式
      • 11.3 專案原始碼& 執行程式
    • 12 關閉干擾爬蟲的彈窗,取得FB 粉專追蹤數
      • 12.1 關閉通知彈窗
      • 12.2 將大目標拆解成小目標,以前往 FB 粉專取得追蹤人數資訊為例
      • 12.3 前往FB 粉專
      • 12.4 分析FB 粉專頁面結構
      • 12.5 取得FB 粉專追蹤人數
      • 12.6 完成爬蟲後關閉瀏覽器
      • 12.7 專案原始碼& 執行程式
    • 13 舉一反三,帶你了解IG 爬蟲不可忽略的細節
      • 13.1 分析IG 登入畫面元件
      • 13.2 使用css 抓取元件,完成IG 自動登入
      • 13.3 分析畫面判斷使用者是否登入成功
      • 13.4 了解響應式網頁對爬蟲的影響
      • 13.5 設定瀏覽器開啟時的視窗大小
      • 13.6 前往IG 帳號並取得追蹤人數
      • 13.7 專案原始碼&執行程式
    • 14 合體吧!用一隻程式搞定FB、IG 爬蟲
      • 14.1 瀏覽器關閉時機錯誤導致爬蟲中斷
      • 14.2 跨網域(CORS)錯誤
      • 14.3 一隻程式爬完FB & IG 粉專
      • 14.4 思考程式上有什麼地方需要改進
      • 14.5 專案原始碼& 執行程式
    • 15 重構程式碼,減少歷史業障
      • 15.1 主程式做了太多事情
      • 15.2 一個函式做了太多事情
      • 15.3 物件宣告的方式太複雜且多次被使用
      • 15.4 專案原始碼&執行程式
    • 16 用try-catch 捕獲爬蟲過程發生的錯誤
      • 16.1 了解try-catch-finally 的語法
      • 16.2 思考專案中有哪些地方需要加上try-catch 的機制
      • 16.3 try-catch 設計時要注意的重點
      • 16.4 加入preCheck.js 做為第一道防線
      • 16.5 在專案的crawlerIG.js 加入try-catch
      • 16.6 將等待時間設定為變數
      • 16.7 專案原始碼&執行程式
    • 17 json x 爬蟲 = 瑣事自動化
      • 17.1 客戶要將爬蟲的網址列表填到什麼檔案呢?
      • 17.2 了解json 格式與基本規則
      • 17.3 在專案中加入json 格式的粉專清單
      • 17.4 在JavaScript 檔引入json 檔案
      • 17.5 撰寫批量爬蟲程式
      • 17.6 專案原始碼&執行程式
    • 18 驗證json 的內容是否符合格式
      • 18.1 為什麼json 在使用前要先驗證格式?
      • 18.2 認識驗證json 格式的套件:「jsonschema」
      • 18.3 測試 jsonschema 的範例程式
      • 18.4 用jsonschema 來驗證json 粉專清單
      • 18.5 將驗證的程式統整為函式:「jsonValidator」
      • 18.6 專案原始碼&執行程式
    • 19 優化爬蟲的小技巧
      • 19.1 思考優化的方向
      • 19.2 優化爬蟲執行效率及穩定度
      • 19.3 讓爬蟲在背景執行
      • 19.4 偽裝瀏覽器的user-agent
      • 19.5 將優化的起動條件設定到「.env」
      • 19.6 專案原始碼&執行程式1
    • 20 學會爬蟲,之後呢?
      • 20.1 感覺爬蟲技術還沒學夠
      • 20.2 我還是想不到爬蟲可以用來做什麼
  • PART 5 使用Google Sheets 儲存爬蟲資訊
    • 21 免費儲存資料的好選擇,一起進入省錢起手式
      • 21.1 取得Google Sheets 憑證(credentials)
      • 21.2 在專案加入官方提供的範例程式做測試
      • 21.3 將Google Sheets 的憑證、授權檔加入「.gitignore」
      • 21.4 專案原始碼
    • 22 了解官方範例在做什麼事
      • 22.1 套件不是照著官方文件安裝就沒事了
      • 22.2 分析官方範例程式
      • 22.3 取得「spreadsheetId」,並加入「.env」
      • 22.4 撰寫讀取指定Google Sheets 的函式
      • 22.5 專案原始碼&執行程式
    • 23 你在文件迷路了嗎?用兩個處理Sheet 的範例帶你攻略官方文件
      • 23.1 拆解爬蟲資料寫入Google Sheets 的步驟
      • 23.2 讀取Google Sheets 內的Sheet 資訊
      • 23.3 取得FB 粉專、IG 帳號的Sheet 資訊
      • 23.4 建立放FB 粉專、IG 帳號爬蟲資料的Sheet
      • 23.5 調整關聯的 Google Sheets 函式
      • 23.6 在主程式呼叫更新Google Sheets 的函式
      • 23.7 專案原始碼&執行程式
    • 24 寫入爬蟲資料,告別Copy & Paste 的日子
      • 24.1 分析Google Sheets 要呈現的資訊, 統整爬蟲函式要回傳的資料
      • 24.2 修改爬蟲函式,讓函式回傳我們需要的爬蟲資料
      • 24.3 以主程式為橋樑,將爬蟲回傳的資料更新至Google Sheets
      • 24.4 將FB、IG 粉專爬蟲資料寫入各自的Sheet
      • 24.5 專案原始碼&執行程式
    • 25 客戶:「爬蟲資料塞錯位置!」專案被報Bug 的處理方式
      • 25.1 將客戶報的Bug 做基礎分類
      • 25.2 引導客戶說出Bug 發生原因及提出解決方案的小技巧
      • 25.3 重現客戶發生的Bug
      • 25.4 改寫程式讓新的爬蟲資料塞入正確位置
      • 25.5 專案原始碼& 執行程式
    • 26 客戶:「我希望新資料插在最前面!」如何談需求變更
      • 26.1 了解驗收過程中需求規格書的重要性
      • 26.2 談需求變更
      • 26.3 將新的爬蟲資料寫到最前面,日期為由近而遠的排序
      • 26.4 專案原始碼& 執行程式
    • 27 優化格式,滿足客戶需求& 談使用者體驗
      • 27.1 不好的使用者體驗來自於哪些因素
      • 27.2 從客戶回饋中,討論需要新增哪些需求
      • 27.3 優化用手機看Google Sheets 的體驗
      • 27.4 專案原始碼& 執行程式
  • PART 6 設定排程自動執行爬蟲程式
    • 28 用Schedule 套件讓爬蟲自己動起來
      • 28.1 排程套件:「node-schedule」
      • 28.2 把排程加入爬蟲
      • 28.3 專案原始碼& 執行程式
    • 29 用pm2 套件來控管Node.js 排程,背景執行才是王道!
      • 29.1 在Mac 砍掉執行中的Node.js 排程
      • 29.2 在Windows 砍掉執行中的Node.js 排程
      • 29.3 使用套件「pm2」來管理Node.js 程式
      • 29.4 使用「pm2-logrotate」來切割log
      • 29.5 用「pm2 ecosystem」取代「pm2 CLI」
      • 29.6 在「package.json」中加入驅動pm2 的scripts
      • 29.7 讓Mac 重啟時pm2 自動啟動
      • 29.8 讓Windows 重啟時pm2 自動啟動
      • 29.9 專案原始碼& 執行程式
    • 30 今天爬蟲怎麼沒有跑?來試試系統內建的排程吧!
      • 30.1 用「Crontab」設定Mac 排程
      • 30.2 用「taskschd」設定Windows 排程
      • 30.3 一開始教內建的方法就好了,為什麼還要學pm2、node-schedule?
  • PART 7 透過LINE 回報爬蟲狀況
    • 31 透過POSTMAN 了解LINE Notify 如何使用
      • 31.1 取得LINE Notify 權杖
      • 31.2 使用POSTMAN 測試LINE Notify
    • 32 用axios 發出LINE 通知
      • 32.1 axios 基礎介紹
      • 32.2 用axios 發出LINE 通知
      • 32.3 專案原始碼& 執行程式
    • 33 整合LINE 的爬蟲通知,專案大功告成!
      • 33.1 分析使用者需要的訊息及來源
      • 33.2 調整爬蟲函式回傳的資料結構
      • 33.3 調整主程式傳遞lineNotify 所需的參數
      • 33.4 在「lineNotify」函式傳送通知
      • 33.5 專案原始碼& 執行程式

評分與評論

請登入後再留言與評分
幫助
您好,請問需要甚麼幫助呢?
使用指南

客服專線:0800-000-747

服務時間:週一至週五 AM 09:00~PM 06:00

loading