iT邦幫忙

2021 iThome 鐵人賽

DAY 16
1
Software Development

Python 爬蟲這樣學,一定是大拇指拉!系列 第 16

[Python 爬蟲這樣學,一定是大拇指拉!] DAY16 - 從爬蟲看 API / CGI

雖然爬蟲只需要使用到 URL 送 Request 就好,但我們還是需要對 API / CGI 有一些簡單的了解。

因為一個網站是基於 API 還是 CGI 設計的,他們 HTTP Request 跟 Response 的方式可能也會不一樣。

有人會問那使用 API 或 CGI 對網站的 Loading 有什麼不同的影響嗎?
有是有,但我們是要爬蟲又不是架網站,不甘我們的事/images/emoticon/emoticon01.gif,我們來了解什麼是介面就好。

API

  • 引用自維基百科

    應用程式介面(英語:Application Programming Interface),縮寫為API,是一種計算介面,它定義多個軟體中介之間的互動,以及可以進行的呼叫(call)或請求(request)的種類,如何進行呼叫或發出請求,應使用的資料格式,應遵循的慣例等。

    介面!又是介面!所以什麼是介面?寫這樣漏漏長,有看沒有懂欸。

  • 介面
    假設有一個搖桿,搖桿上的每個按鈕,各自有各自的功能對吧,那就是搖桿的介面,我們只需要怎麼用不需要知道裡面是怎麼運作的。

  • 回到網頁上,也就是說網頁上那些查詢、新增等等功能,那些就是界面(URL),而我們只需要知道餵給他們什麼參數,不需要知道他們內部邏輯,就能得到預期的結果。

  • 所以當我們要爬蟲時,就得先調查這些 URL 可以吃什麼參數、怎麼使用、有什麼限制,再根據我們想要的結果丟相對應的參數給它。

  • Request 跟 Response,通常都是用 Json 來包裝資料,資料格式依照設計也會有所不同

CGI

  • 引用自維基百科

    通用閘道器介面 (英語:Common Gateway Interface,CGI) 是為提供網路服務而執行控制台應用 (或稱命令列介面)的程式,提供於伺服器上實現動態網頁的通用協定。通常情況下,一次請求對應一個CGI 指令碼的執行,生成一個 HTML。

    一樣也是介面

  • 有些網頁會使用 CGI 技術來建構他們的網站,通常 Response 會是 HTML。但不是一定,也有其他格式的 Response。

  • Request 的話,通常都是用 Form 來包裝資料,這點要注意一下,不然是拿不到想要的 Response 的喔!這邊也一樣,資料格式依照設計也會有所不同

總之,不管網頁提供什麼介面,寫爬蟲程式前要好好調查一下那些介面要怎麼使用喔!

本篇章參考資料

[1] Wiki - 應用程式介面
[2] Wiki - 通用閘道器介面


上一篇
[Python 爬蟲這樣學,一定是大拇指拉!] DAY15 - Cookie / Session
下一篇
[Python 爬蟲這樣學,一定是大拇指拉!] DAY17 - 爬蟲事前準備
系列文
Python 爬蟲這樣學,一定是大拇指拉!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言