創作內容

0 GP

用 Postman 窺探爬蟲的視角

作者:Yotsuba│2020-06-11 02:08:25│巴幣:0│人氣:645
從官網介紹來看 Postman 是一款網頁 API 開發測試工具

既然它可以拿來測試 API,那就可以拿來發 Request,更可以拿來測試我們的爬蟲

我先把 Postman 的官網連結放在這裡 : https://www.postman.com/

如果你們看完文章覺得有需要可以再回來下載


為什麼我們需要 Postman 這樣的工具 ?

因為前方路況不明,我們常常遇到「自己看到的跟爬蟲看到的不一樣」的情況

假設今天你請求了巴哈姆特的首頁

如果你想窺探一下爬蟲的視角,最好不要直接用 print 看網頁原始碼

你可以這樣做 :


import requests


response = requests.get('https://www.gamer.com.tw/')

with open('Bahamut.html', 'w+', encoding = 'utf-8') as f:
    f.write(response.text)


其實就是直接把網頁原始碼寫成 HTML 檔案

你的執行資料夾底下就會多一個 Bahamut.html,點開來看就是爬蟲的視角了




圖中我標記了 2 個重點,首先是登入的地方

因為爬蟲是 GET 請求,而且沒有帶任何 headers,所以會看到「我要登入」的字樣

在爬其他網頁的時候也要注意這個細節,有時候你以為你 POST 成功了

或者你以為你的 Cookie 帶入都正確了,實際上你根本還沒通過驗證


第二個重點,為什麼有 8 張圖片沒有正常顯示 ?

對著它們按右鍵並且檢查會發現圖片路徑是相對位置,難怪沒有正常顯示

不過還是偵測的到該節點,網址拼一拼資料還是正確的,影響不大


如果用 Postman 送出請求看到的樣子




我在圖中使用了 3 個標記

首先第一個地方是讓我們調整 HTTP Methods 的地方

第二個是調整一些參數設定,包括 headers 或 POST 的送出資料

如果你要使用 POST,記得到 body 的 Form Data 欄位帶入送出資料

第三個地方是 Postman 最強大的地方,就是可以圖形化網頁,或者應該說呈現 HTML

也可以選擇看原始碼,而且 Postman 會很貼心的幫你排版過


Postman 跟終端機都有一個特性,就是不執行 JavaScript

也正是因為很多網頁都會使用 JavaScript 或 AJAX

如果讓它影響到我們在意的資料,就有可能造成我們看到的跟爬蟲不一樣

Postman 就算是一個測試自己請求有沒有成功的工具

之前的創作 POST,你現在就可以用 Postman 來測試看看文章使用的範例網站

確定自己的測試結果符合預期,再安心的寫成 Python Code




這邊有兩個網址,第一個網址會再兩秒後用 JavaScript 重導向至另一個網址

第二個網址也是再兩秒後,不過是用 AJAX 改變網頁內容

假設我們想要的資料都是 JavaScript 或 AJAX 渲染過的部分,就可能造成爬蟲設計困難

畢竟這兩個網頁都很貼心的給了兩秒的時間讓你用肉眼觀察,其他網站就得靠自己分析


這兩個網站無論你用 Python requests 或 Postman 都只看得到渲染前的畫面

原因剛剛說過,Postman 不執行 JavaScript

當你發現 Postman 跟瀏覽器看到的不一樣時,就可以少走一些冤枉路了

進而再想辦法分析及思考如何爬取


我認為 Postman 的定位介於終端機跟瀏覽器之間

以圖形化的介面窺探爬蟲的視角
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4812682
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

喜歡★happy819tw 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:URL Redirect... 後一篇:AJAX...

追蹤私訊切換新版閱覽

作品資料夾

a86189642祝福
看到的人會變的幸福哦~看更多我要大聲說昨天20:39


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】