使用request.get中的params=payload問題
2019/12/28 下午 01:35
Python網路爬蟲討論版
Emma
觀看數:6
回答數:2
收藏數:1
我選了電影'添好孕'(id=10332),網頁上只有台北和桃園可兩個播放地區,但是加上params=payload之後結果卻跑出一堆其他地區?不加的話反而結果是正確的(如下)其他所有程式碼都是一樣的,請問params=payload到底用意為和呢?只有奇摩網站必須加上去嗎?那為何加上去執行結果反而錯誤? 謝謝
錯誤結果:
正確結果:
回答列表
-
2019/12/28 下午 03:28小糖果贊同數:3不贊同數:0留言數:1
你好:
我覺得第一張圖,在url的地方拿掉後面movie_id = '10332'就會是對的,這也是加上payload的用意,意思是:
接下來可以印出他的url:
payload就是補上後面"?"的部分,拼成完整的url,這個網址可以在Network看到:
所以你第二章程式碼,在url的部分已經補上payload,印出來的部分才是對的
-
2019/12/28 下午 08:19張維元 (WeiYuan)贊同數:4不贊同數:0留言數:1
網址一般有兩種溝通資訊的方式,一種就是直接用路徑來表示、另一種可以在網址後面加上參數。
參數的形式會是 ?key1=value1&key2=value2 ,這裡的 key1、key2 代表的是兩個參數,分別的數值是 value1 、value2,參數跟路徑都是 HTTP 中 Client 和 Server 用來溝通的方式。
那怎麼利用 Python 的 Request 套件在網址後面加上參數呢?你可以自己用字串的方式拼,也可以利用 params 幫我們拼,結果是一樣的。