我是Python的新手,我在從API請求資料時遇到了麻煩。 API的端點是。 https://www.poder360.com.br/banco-de-dados/
無論我怎么做,我都只得到 status_code 403.
。span class="hljs-keyword">import requests
response = requests.get("https://pesquisas.poder360.com.br/api/"/span>)
print(response.status_code)
回應.json()
回應.文本
uj5u.com熱心網友回復:
你得到的是403,因為有Cloudflare保護。要通過它,你需要包括頭檔案/cookies來向Cloudflare表明你不是一個機器人。
這里有一個使用urllib的作業解決方案:
import urllib.request
headers = {
'authority': 'www.poder360.com.br',
'cache-control': 'max-age=0',
'sec-ch-ua': '"Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"' ,
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'dnt': '1',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36' ,
'accept': 'text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'/span>,
'sec-fetch-site': 'none',
'sec-fetch-mode': 'navigate',
'sec-fetch-user': '?1',
'sec-fetch-dest': 'document',
'accept-language': 'ja,ja-JP;q=0.9,en-SG;q=0.8,en-US;q=0.7,en;q=0.6'。
'cookies'。'PHPSESSID=t2qgtmr3fjv5lg7t2j9hv1gv3e;'。
}
request = urllib.request.Request('https://www.poder360.com.br/banco-de-dados/'/span>, headers=headers)
r = urllib.request.urlopen(request).read()
print(r.decode('utf-8'/span>)
我把我的PHPSESSID cookie留在了那里,因為我不打算使用這個網站。
另外,如果你使用的是python2,這可以用python-requests:
import requests
from requests import Session
from collections import OrderedDict
headers = OrderedDict([
('Accept-Encoding', 'gzip, deflate, br'),
('Host', 'www.poder360.com.br') 。
('authority', 'www.poder360.com.br')。
('Cache-Control', 'max-age=0') 。
('Sec-Ch-Ua','"Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"'/span>)。
('Sec-Ch-Ua-Mobile', '? 0'),
('Sec-Ch-Ua-Platform', '"Windows"') 。
('Dnt', '1') 。
('Upgrade-Insecure-Requests', '1')。
('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'),
('Accept','text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-change;v=b3;q=0.9') 。
('Sec-Fetch-Site', 'none') 。
('Sec-Fetch-Mode', 'navigate')。
('Sec-Fetch-User', '? 1')。
('Sec-Fetch-Dest', 'document'),
('Accept-Language', 'ja,ja-JP;q=0.9,en-SG;q=0.8,en-US;q=0.7,en;q=0.6')。
('Cookies'/span>, 'PHPSESSID=t2qgtmr3fjv5lg7t2j9hv1gv3e;'/span>)。
])
s = Session()
s.headers = headers
response = s.get('https://www.poder360.com.br/banco-de-dados/', headers=headers)
print(response.status_code)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/332631.html
標籤:
