終於來到Python網路爬蟲的實戰,因為平常就很愛滑PTT,所以拿PTT來練習超親切。這次練習使用第三方套件beautifulsoup解析HTML,跟著彭彭老師的影片照著打,過程很順利,也蠻有成就感的!

本篇文章內容
什麼是網路爬蟲
數位行銷領域常常聽到「網路爬蟲」這個名詞,像是收集網路輿情、社群媒體資料等等,到底「網路爬蟲是什麼」?
網路爬蟲是一種用來自動瀏覽網路的機器人,可以幫我們把特定網頁中大量的資訊抓取下來,在這個資料爆炸的時代,網路爬蟲可以取代人力,讓大量採集數據變得更有效率,讓行銷人員/數據分析人員可以專注在做後續的數據分析和解讀。
網路爬蟲關鍵心法
彭彭老師在爬蟲教學的兩支影片中,都特別講解了「網路爬蟲關鍵心法」,對於爬蟲工作來說,是在開工前非常重要的觀念。
【盡可能讓程式模仿一個普通的使用者的樣子。】
我們在撰寫程式時,要盡量去設想,一個普通的使用者(人類),會如何去閱讀這個”頁面”,取得哪些”資料”,再由程式(機器人),利用重複的方式,協助我們大量撈取。
Python網路爬蟲流程
Python 網路爬蟲基本流程,包含:連線到特定網址、抓取資料、解析資料。
1.觀察要抓的網頁(以PTT電影版為例)

打開PTT電影版,按下F12,可以打開Chrome瀏覽器的開發者工具。
我們可以利用這個工具,來觀察目標網頁的HTML架構。
2.使用urllib對網站發出請求

載入內建的標準網路請求庫(urllib),對PTT電影版提出連線需求。
這邊必須使用user-agent模擬一般使用者。
*user-agent可以從Chrome開發者工具(DevTools)中的Network→Index.html→Request headers中獲得。
3.抓取頁面資料(HTML)

送出需求以後會得到整個網站資料,如果將這個頁面資料印出,
會得到完整頁面的完整HTML程式碼。
4.載入beautifulsoup模組解析HTML
由於我們不是要整個原始碼,而是需要網頁中的資料。
因此必須安裝beautifulsoup模組,幫助我們解析HTML。
5.擷取需要資料(此處抓取文章標題)
最後,把解析後的HTML資料擷取需要的部分,
使用.find_all去抓div標籤裡面,class=title的所有資料。
(對應第一步觀察網頁,才知道自己要擷取哪些)
使用迴圈印出結果
最後用迴圈印出需要的結果。
Python爬蟲實作:撈取電影版文章標題
import urllib.request as req url="https://www.ptt.cc/bbs/movie/index.html" #建立一個request物件,附加request headers資訊 request=req.Request(url,headers={ "user-agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36" }) #模擬一般使用者User-Agent with req.urlopen(request) as response: data=response.read().decode("utf-8") print(data) import bs4 root=bs4.BeautifulSoup(data,"html.parser") print(root.title.string) #抓頁面標題 root1=bs4.BeautifulSoup(data,"html.parser") titles=root1.find_all("div",class_="title") #尋找class="title"的div標籤 for title in titles: #利用迴圈取出整個頁面文章標題 if title.a!=None: print(title.a.string)
執行結果

Python爬蟲(HTML)Q&A
Beautifulsoup如何安裝
在Google Colab內,只要輸入pip install beautifulsoup4,
即可安裝完成。
Beautifulsoup是什麼?
Beautifulsoup是一個第三方的Python套件,用來解析HTML、XML等格式,是目前非常熱門的Python爬蟲必備套件。
本次練習檔與影片
練習檔網址:Day9(12/20):網路爬蟲(Web Crawler) 抓取PTT電影版
影片列表:Python 網路爬蟲 Web Crawler 基本教學
Python練習計畫-行銷人學Python的理由?【Python練習】
【Python新手練習】相關文章
【Python新手練習】系列文,是一個行銷人學習Python的筆記,希望可以藉由練習程式,訓練更強大的邏輯思考,如果你也對這塊有興趣,這些文章或許可以幫助到你!也歡迎一起交流。
行銷人的Python練習90計畫-為什麼要學Python?
Day0:Google Colab新手Python開發環境推薦
Day1:Python變數與資料型態
Day2:Python判斷式與迴圈(流程控制)
Day3:Python函式 定義、呼叫與回傳
Day4:載入Python模組與使用
Day5:Python檔案讀取和儲存
Day6:Python亂數與統計
Day7:Python API 開放資料串接,抓取台北市政府公開資料!
Day8:Python實體物件建立與使用
Day9:Python爬蟲實戰!抓取PTT電影版
發佈留言