---
# System prepended metadata

title: 說好的回傳JSON呢
tags: [JSON, Python, requests]

---

# 說好的回傳JSON呢
###### tags: `requests` `JSON` `Python`

今天在爬蟲一網站時

明明在Chrome敲Web API網址可以正常看到JSON格式資料回傳

如下圖
![](https://i.imgur.com/o95vQyR.png)

**但是呢...到了Postman說好的JSON資料呢**

![](https://i.imgur.com/l6hl5JT.png)

怎麼變成請求網頁

一開始以為`HTTP Header` 加上`回應內容類型`及可


| KEY | VALUE | 說明 |
| -------- | -------- | --- |
| Accept     | application/json     | [能接受回應內容類型](https://zh.wikipedia.org/wiki/HTTP%E5%A4%B4%E5%AD%97%E6%AE%B5) |

或是以為有在`Cookie`放入他們的驗證嗎

結論都不是，原來是

| KEY | VALUE | 說明 |
| -------- | -------- | --- |
| User-Agent     | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:88.0) Gecko/20100101 Firefox/88.0     | [告訴伺服器我使用什麼瀏覽器](https://zh.wikipedia.org/wiki/HTTP%E5%A4%B4%E5%AD%97%E6%AE%B5) |

感覺是網站設計稍微阻擋不良用戶`發出請求`

不過這阻擋當然是沒有用

只要在`HTTP request header`加上`User-Agent`就解決

Python requests code
```python=
url = "https://www.wantgoo.com/stock/2330/news-list?index=1"
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:88.0) Gecko/20100101 Firefox/88.0',
}

rsp = requests.get(url, headers=headers)
print("encoding:", rsp.encoding)
print("apparent_encoding:", rsp.apparent_encoding)
loaded_json = json.loads(response.text)
print(loaded_json)
```