用Postman+Requests輕鬆學網路爬蟲

SeanChien
8 min readSep 16, 2020

--

Photo by Ash Edmonds on Unsplash

前言

上一篇跟大家分享了使用 Python+ Requests來進行網路爬蟲,那今天要跟大家介紹一個懶人爬蟲神器 — Postman,只要在對應的欄位填入資料就可以幫你爬蟲,並直接生成程式碼讓你在不同的程式語言中使用。而且Postman是一個超好用的API(Application Programming Interface)測試工具!

前置作業

  • 下載Postman
下載教學:
1.進入官網https://www.postman.com/downloads/
2.點擊下載或是使用線上版(這邊建議大家下載下來,比較方便!!!)
3.進入的時候可以選擇使用google登入就好
by Postman
  • API(Application Programming Interface)介紹
API的全名是應用程式介面,光從名字其實有點難懂。其實可以用一個情境來解釋,今天有個消費者到餐廳用餐,消費者向服務生點餐,服務生去跟廚師說消費者的需求,廚師聽懂了需求之後,製作食物,並且讓服務生將餐點提供給消費者使用。我們知道,餐點不是服務生製作的,食物也不是服務生要吃的,所以服務生就是中介的角色。而API相當於服務生的角色,當使用者有一個請求(點餐)發出的時候,API將回傳的結果(餐點)傳遞給使用者。

基礎設置

Step 1 創建一個Collection

其實Collection就像是個資料夾,裡面會放一些檔案(Request),每個檔案都可以獨立的使用,也可以透過Runner一次把資料夾內全部的檔案都跑一遍!

點擊Create a collection

Step 2 創建一個Request

Request就像是一個爬蟲檔案,設置完畢儲存起來,之後就可以直接當作一個爬蟲程式來爬取資料,相當方便而且快速。

點擊Request
設定一個Request,並選擇剛剛建立的Collection

到這邊基礎的Postman設置差不多完成了,可以開始我們的懶人爬蟲法!還記得爬蟲是什麼嗎?就是對網站發出一個請求然後把回應的內容給讀取出來的一隻程式,忘記的朋友們可以參考我的前一篇文章:Python 網路爬蟲Web Crawler教學 — 資料結構複習+Requests篇

Photo by Markus Spiske on Unsplash

開始爬蟲

還記得爬蟲的第一步是什麼嗎?首先你要先找到一個你想要爬取的網站,我們就比照上一篇文章,會使用GOOGLE、PTT等網站來做示範!

發出請求

METHOD選取發出請求的方式

從上面的截圖可以看到,左邊有個METHOD的選項,這邊可以選取要用什麼方式對網站發出請求,我們最常用的還是GET跟POST了,這邊就先使用GET來發出請求來做範例。

URL輸入網址並按下Send

我們在網址的地方放入我們要爬取的URL,並點擊Send就可以爬取資料了,是不是比Python寫程式碼快速又簡潔呢?而且在下面可以看到很多的詳細資料呢,像是這次請求的狀態碼、時間、檔案大小,還有讀取的完整資料

以範例來說,我們對https://google.com這個網站發出GET請求,Status可以看到是200 OK,並且下方可以看到網頁原始碼,代表我們成功爬取資料了!

另外如果是用POST發出請求,記得點開Body的欄位,透過鍵值對應的方式把資料寫入,就可以順利讀到自己想要的東西

URL增加參數

還記得如果要在網址上動手腳,只要在URL後面增加一些參數,就可以幫助使用者更快取得某些資料嗎?這時候就要動用Postman裡面的Params的欄位了,只要輸入對應的鍵與值,這可以對網址增加參數!

在Google中搜尋東西的參數是q,所以在KEY的位置放上q,在VALUE的位置填入自己要搜索的內容,像我是用python為例子。觀察一下URL那行,是不是自動加上了q=python這樣的參數呢?就是這麼簡單就可以完成參數的新增!我們從結果可以看一下是不是跟我們預期的一樣,Status:200 OK 而且從Google搜尋python的第一筆資料是 Welcome to Python.org

這樣一來就代表我們成功把參數加到URL並且透過Postman來爬進行我們的爬蟲程式啦~接下來要來分享新增Header及Cookies的方法!

新增Header

之前有提到,很多網站為了避免其他人對他們網站進行爬蟲,設置了所謂的反爬蟲機制,這時候只要在Header增加User-Agent的參數,就可以騙過不少網站,成功讀取資料了,Postman一樣可以做到這件事,只要到Headers的頁面填入資料就好了!而且他可以做到更多的事。

首先他有內建的User-Agent所以基本上可以直接對很多網站進行爬蟲,當然如果你想要改成自己喜歡的名字也可以啦😂

內建User-Agent

接著,他可以把Cookie存在這裡面,一樣是透過鍵值對應的方式來新增!

還記得ppt的表特版,如果沒有新增over18=1這個cookie的時候,讀取的資料會是年紀確認的資料,這樣沒有辦法讀到自己想查詢的正確資料。

這時候,這是在KEY的位置放入cookie,而VALUE則放入over18=1,就可以順利地爬取正確的資料了喔~而且送出的時候就可以很直接快速的看到結果,不像Python還要透過.text或json的方式來解析結果。

Cookies

除了透過上面將cookie存到Headers的鍵值中這個比較隱晦的方法,還有一個非常好用的方法,就是點擊旁邊的Cookies,然後按照他的格式,把想輸入資料放進去,就可以不用在Headers那邊加入cookie參數也可以正確讀取資料!

Postman新增Cookies的方式就是這麼直覺,而且如果你爬了很多不同的網站,他會依照不同的網站去做存取,所以之後再回來爬取的某個網站的時候,就不用再一次把Cookies加進去了。

登入

在登入方面也是相當的直覺,而且可以依據不同的方式來發送登入的請求

我們先選擇Authorization的欄位,再選擇對應的TYPE,並依照該類型的方式輸入帳號密碼或是TOKEN等等,就可以快速的完成請求了!

轉成程式碼

最後,Postman有一個強大而且非常方便的功能,就是他可以幫你把在剛剛做的測試,轉成程式碼,而且相容相當多的語言,這樣你只需要將程式碼複製就可以執行,不需要自己重打啦!只要點擊旁邊的Code,就會跳出下面的畫面,左側可以選擇自己常用的程式語言,把程式碼複製起來,就快速順利的完成一隻簡單輕鬆的爬蟲啦!

小結

透過Postman發送Requests請求的分享大概就到一個段落,其實Postman還有更多強大的用途,他是一個測試API的神器!前面有提到API就像是一個中介者,負責把請求的回傳給呈現出來,那Postman剛好可以做到這件事!像是他可以將Collection內很多個Request當成一個Test Case,並且透過Collection Runner一次跑完!!!!當你的Request數量很多,而且息息相關的時候,Postman的價值就可以體現出來了!但因為這篇的重點是在爬蟲,想知道更多API測試的用法,之後會再寫一篇更詳盡的分享文~

我是尚恩,一個從商學院畢業的菜鳥工程師,有任何想從商轉換跑道的問題都可以找我聊聊,歡迎透過Linkedin@SeanChien聯絡我~

如果喜歡我的文章可以幫我鼓掌、訂閱、分享謝謝!

--

--

SeanChien
SeanChien

Written by SeanChien

SQA Engineer @ Amazon | 菜鳥工程師的CD之路 | UW MSBA 22 | Linkedin: www.linkedin.com/in/seanchien0525

No responses yet