為什麼在瀏覽器呼叫api會出現401錯誤,在jupyter卻可以執行
2019/12/12 下午 03:27
Python網路爬蟲討論版
陳冠樺
觀看數:25
回答數:4
收藏數:4
pycrawler
pycrawler-d14
請問老師,在Day-14的作業中,指定電影id來擷取資訊的程式碼中:
url ='https://movies.yahoo.com.tw/api/v1/areas_by_movie_theater'
payload ={'movie_id':str(movie_id)}
為什麼直接在瀏覽器輸入
https://movies.yahoo.com.tw/api/v1/areas_by_movie_theater?movie_id=xxxxx
會得到401,而執行jupyter程式碼就可以拿到東西呢?
另想請問老師是如何得知有這一個api網址可以使用的,謝謝!
回答列表
-
2019/12/12 下午 04:23張維元 (WeiYuan)贊同數:2不贊同數:1留言數:1
嗨,你仔細往下面看一下,程式中還有加上 Headers。Headers 中也可以帶資訊作為對方 Server 判別用!
-
2019/12/13 下午 05:11張維元 (WeiYuan)贊同數:1不贊同數:0留言數:0
「要如何知道需要準備哪一些header才可以呢?」
=> 如果不知道的話,建議全帶。至於要帶哪些欄位,在後面的課程會教你怎麼從開發者工具中觀察。
「'mv-authorization': '21835b082e15b91a69b3851eec7b31b82ce82afb',就可以抓到資料,請問這一行代表什麼意思呢?」
=> 這個是對方用來檢查的某個欄位,可能是他們網站中會用到,但對我們來說可能無法知道是什麼意思。
-
2019/12/13 下午 11:28小糖果贊同數:0不贊同數:0留言數:0
同問老師是如何得知這個api網址可以使用的,謝謝!
-
2019/12/14 上午 00:07張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
「同問老師是如何得知這個api網址可以使用的,謝謝!」
=> 好問題!這個 API 其實是透過 JavaScript 動態呼叫的,可以從瀏覽器工具中的 Network 區塊做觀察。不過具體的操作,我們會流到「動態網頁爬蟲」的章節再詳細解釋:)