top of page

工作詳述

焦榮安:Python爬蟲練習

 

  在三上期末時,老師交代我們要作一個簡單的爬蟲練習,雖然在上學期時,修了一門Python的程式課並在期末做過了爬蟲練習,但我對於爬蟲的瞭解還是很少,於是寒假後我就上網尋找了一下,發現有個 Youtube 的爬蟲影片教學,開始了解爬蟲的運作。

 

        至於什麼是網路爬蟲呢?它是一個可以自動化抓取網頁內容的程式。相信大家多少都遇過需要抓取網頁資訊的時候,也許是因為要做報告、或是出於興趣想研究,需要相關參考資料。最簡單的方法就是一筆一筆複製,然後貼到excel或是文字編輯器儲存,再做後續的分析。可是網路爬蟲是會消耗目標系統資源的,所以有很多網站並不默認爬蟲工作,所以當要爬大量頁面時,爬蟲需要考慮到規劃、負載,還需要講「禮貌」。 不願意被爬蟲存取、被爬蟲主人知曉的公開站點可以使用robots.txt檔案之類的方法避免存取。這個檔案可以要求機器人只對網站的一部分進行索引,或完全不作處理。

 

        要怎麼用程式去做到這些呢?首先必須要有模擬人進入網頁的部分,所以要了解到什麼是User-Agent (中文稱使用者代理),當我們使用軟體或是APP,進行網路協定的操作時,通常會透過提交一個特定的字串來標示自己的身份,以及相關的訊息,例如裝置、作業系統、應用程式,來表明使用的身份。在該網站按下F12並找到NETWORK並在NAME中按下一個檔案就會跑出Request Headers。

2.jpg
3.jpg

圖2

圖3

接下來我使用的是Beautiful Soup 模組自動下載並解析網頁資料,它是開發典型的網路爬蟲程式。Beautiful Soup 是一個 Python 的函式庫模組,可以讓開發者僅須撰寫非常少量的程式碼,就可以快速解析網頁 HTML 碼,從中翠取出使用者有興趣的資料、去蕪存菁,降低網路爬蟲程式的開發門檻、加快程式撰寫速度。

4.jpg

圖4

找到套件後,就可以開始找網頁來爬了。一開始我爬的網站是PTT的NBA版的標題,所以要先了解PTT的網站架構,這樣才能進行爬蟲的動作。

5.jpg

圖5

6.jpg

圖6

上面圖5是進去PTT的NBA版所看的標題,然後圖6指的是滑鼠朝著標題按下F12以後所跳出來的畫面,由圖6可以看到PTT網站的架構,標題的架構是標籤是”div”然後他的class是”title”所以要這樣寫就可以找到PTT的NBA版首頁的標題。

下方程式第二行是為了要把抓出來的東西取出text來要不然原來輸出的東西會像圖7雜質很多,而圖8就是完成了一開始標題的抓取,圖9則是抓取成功的結果。

7.jpg

圖7

8.jpg

圖8

9.jpg

圖9

黃榆程:網路爬蟲、分析資料、製作網頁

 

我們與老師討論後訂定主題為”幼兒相關網站的資料彙集與統合”並利用統整好的資料為基礎建立一個網站以供使用者查詢,我們的目前所進行或完成的工作如下:

 

1.找尋與育兒相關之網站:

  這是目前我所找到的兩個與專題主題相關(討論度與使用者數量需高,網頁有持續更新)的網頁,圖10為PTT BabyMother論壇,圖11為Babyhome論壇網站。

10.jpg

圖10

11.jpg

圖11

2.利用python進行網路爬蟲將網站上的資訊爬取下來並輸出成Json格式檔以便分析

圖12為範例輸出檔示意圖

12.jpg

圖12

鄭云瑄:Python爬蟲 和寫入資料庫

 

1.需求:

 

在寒假時,使用Python語言抓取PTT的分類看板,並將抓到的資訊用JSON的格式儲存下來作為練習,目前在抓取網路上相關嬰幼兒以及懷孕的網站,將資訊同樣以Json的格式儲存下來,以利往後的內容分析。

 

圖13、14為PTT分類看板示意圖與嬰幼兒相關資訊網站。

圖13

圖14

2.程式:

 撰寫Python語言,將PTT以及相關嬰幼兒網站中可見的所有資訊(如:文章的標題、作者、內容、留言、網址)擷取下來。

 

接著將資料逐筆寫入串列,最終匯出成Json的格式儲存,作為之後分析的資料數據。

 

圖15為程式碼範例。

15.jpg

圖15

蒙宗凌:網站爬蟲

 

  目前的內容大致上是以網站爬蟲為主,自己挑選網站去進行爬蟲,取得需要用到的資料,然後整理成Json檔存起來,方便之後專題所需要的資料。

 

圖16為我目前第一個抓好的網站主頁,網頁主題是偏向新手爸媽或是懷孕大小事

16.jpg

圖16

bottom of page