logo
Loading...

使用request.get中的params=payload問題 - Cupoy

我選了電影'添好孕'(id=10332),網頁上只有台北和桃園可兩個播放地區,但是加上params=...

使用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 幫我們拼,結果是一樣的。