Skip to content

lars10192002/2st-PyCrawlerMarathon

Repository files navigation

D1 - 資料來源與檔案存取

  • 介紹常見的資料提供管道與 資料取得方式,並且利用 Python 進行存取

D2 - 實作:Python 下載CSV檔案與解析

  • 示範存取、解析一個 CSV 格式的檔案

D3 - 實作:Python 下載XML檔案與解析

  • 示範存取、解析一個 XML 格式的檔案

D4 - HTTP Server-Client 架構說明與 利用 Python 存取 API

  • 淺談 HTTP 網站架構與運作方式, 如何利用 Python 程式存取來自 HTTP API 的資源

D5 - 實作 Day:API 資料串接 - 基本 API + JSON

  • 示範存取、解析一個 JSON 格式的 API 資源

D6 - 實作 Day:API 資料串接 - Headers

  • 如何在 API 存取中加上標頭檔

D7 - HTTP 靜態網頁架構說明與淺談HTML / CSS / JavaScript

  • 淺談 HTTP 網站架構與運作方式與 網頁基礎結構:HTML、CSS、JavaScript

D8 - 靜態網頁的資料爬蟲策略

  • 解析靜態網站的運算方式與爬蟲的實作策略

D9 - 圖片下載

  • 了解除了文字以外的圖片爬蟲技術

D10 - PyQuery/grab

  • 介紹更多的資料爬蟲工具

D11 - Regular expression

  • 學習利用正規表達式,過濾及擷取資料

D12 - 實作 Day:ETTODAY 靜態爬蟲實作練習

  • 以 ETTODAY 為例示範如何完成網頁爬蟲

D13 - 實作 Day:PTT(批踢踢)網路爬蟲實作練習

  • 以 PTT 為例示範如何完成網頁爬蟲

D14 - 實作 Day:Yahoo! 電影網頁爬蟲實作練習

  • 以YAHOO電影為例示範如何爬取電影資訊

D15 - 實作 Day:金融資訊網頁爬蟲實作練習

  • 以台銀網站為例示範如何爬取資訊並整理資料

D16 - 實作 Day:Wiki的爬蟲實作練習

  • 練習爬取Wikipedia的資料

D17 - HTTP 動態網頁架構說明與非同步取得資料

  • 解析動態網站的運算方式與爬蟲的實作策略

D18 - 瀏覽器開發者工具介紹

  • 介紹瀏覽器開發工具

D19 - 動態網頁爬蟲 - 使用Selenium + BeautifulSoup 模擬瀏覽器執行

  • 示範如何使用瀏覽器模擬工具實作動態網頁爬蟲

D20 - 動態網頁爬蟲 - 利用開發者工具,觀察模擬 API 存取

  • 示範如何使用瀏覽器開發工具實作動態網頁爬蟲

D21 - 實作 Day:ETTODAY 動態爬蟲實作練習

  • 以 ETTODAY 為例示範如何完成網頁爬蟲

D22 - 實作 Day:空氣污染網站爬蟲實作練習

  • 以空氣污染網站 為例示範如何完成網頁爬蟲

D23 - 實作 Day:東森新聞雲網站爬蟲實作練習

  • 以東森新聞為例示範如何完成網頁爬蟲

D24 - 實作 Day:104人力銀行網站爬蟲實作練習

  • 以104人力銀行網站為例示範如何完成網頁爬蟲

D25 - 多網頁爬蟲實作策略介紹

  • 大量爬蟲的起點: 多網頁 / 多網站爬蟲策略

D26 - Scrapy 爬蟲流程 (1) - 建立流程 + 送出請求

  • Scrapy 爬蟲框架初探 (1): 建立專案與請求

D27 - Scrapy 爬蟲流程 (2) - XPath + Item Pipeline

  • Scrapy 爬蟲框架初探 (2): 處理資料的 pipeline

D28 - Scrapy 爬蟲流程 (3) - API

  • Scrapy 爬蟲框架初探 (3): 由外部呼叫框架爬蟲

D29 - Scrapy 爬蟲流程 (4) - 多網頁爬蟲

  • Scrapt 爬蟲框架初探 (4): 以 PTT 為例實作框架多網頁爬蟲

D30 - 爬蟲可能會遇到的問題

  • 說明實務的爬蟲程式可能會面臨的幾種情況與挑戰

D31 - 反爬:瀏覽器標頭與基本資訊

  • 利用HTTP 的標頭檔的設定 處理反爬蟲機制

D32 - 反爬:驗證碼處理

  • 利用視覺辨識的工具處理網頁中的驗證碼

D33 - 反爬:登入授權模擬

  • 利用 Cookie 來模仿網站中的登入行為

D34 - 反爬 : 代理IP

  • 利用代理伺服器來解決 IP 被禁止使用的狀況

D35 - 加速:多線程爬蟲

  • 利用多線程 加速爬蟲的執行時間

抓PTT資料為範例

1.物件導向寫法[MyTask class]
2.使用佇列 Queue
3.使用lock:被 Lock 的 acquire 與 release 包起來的這段程式碼不會被兩個執行緒同時執行。用來寫入檔案

D36 - 加速:非同步爬蟲

  • 利用非同步加速爬蟲的執行時間

D37 - 自動化更新機制(排程)

  • 利用排程自動化爬蟲更新資料的操作

D38 - D40 專題


參考資料: https://morvanzhou.github.io/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published