Day 1 – 寫爬蟲抓取 PTT Soft_Job 版的文章

最近需要一些資料來做研究,而 Open Data 使用起來不方便也不一定適合,所以決定來複習一下爬蟲,準備來抓資料了。


分析 HTML 結構

進入 PTT Soft_job 板, 通過 Chrome 的開發人員工具,我們來分析這段 HTML

每一篇文章的結構是這樣的

  • 文章被 <div class=r-ent”></div> 包起來
  • 文章標題和 URL 在 class=title 中
  • 作者的名稱在 class=meta底下的 class=author

Coding

這裡使用 Python 3 來做示範,會用到兩個套件:

先來抓取所有的文章標題和對應的 URL

在 terminal 中的運行,就會看到我們抓到的第一頁內容。

寫入 CSV

我打算把爬下來的資料放入 csv 檔,之後可以導入 Database 或者通過 Excel 打開來分析。

分頁功能

網站基本上都會有分頁的功能,也就是資料不會都在同一頁上,會需要配合參數來索取不同的資料,而 PTT 這邊他是每一頁都有個獨立的 URL

其中最新的一頁會是 https://www.ptt.cc/bbs/Soft_Job/index.html
在切換 page 的時候會看到其他的網址,很容易就會找出規律

把整個版都抓下來吧

把解析 HTML 和寫入 csv 的動作包成一個方法 downloadArticlesFrom(url)
通過一個 for loop 把第 1 頁到 1483 頁的資料都抓下來。


延伸問題

  • 研究多線程處理
    一千頁跑起來不算久,但是如果是一萬頁或者 十萬頁,就需要等一會了

相關連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *