Python 对 Pixabay 的请求

Python requests to Pixabay

我正在尝试向 pixabay 发送请求。

这是我的代码

import requests

url = 'https://pixabay.com'
header = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'
}

req = requests.get(url, headers=header)

print(req.status_code)
print(req.headers)
print(req.text)

它不会工作(403 错误)。 我该怎么办?

Pixabay 具有 Cloudflare 安全功能,如果您从列入黑名单的 IP 连接,则需要您解决验证码问题。

为了绕过这个,您必须先通过浏览器连接,然后将 headers 和 cookie 复制到您的 python 脚本中。这对我有用,但你必须替换像 __cfduid 这样的部分,这是你的 cloudflare 指纹才能访问该网站。还要检查您的 User-Agent 是否正确。

import requests

url = 'https://pixabay.com/'
header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3835.0 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5',
    'Accept-Encoding': 'gzip, deflate',
    'Upgrade-Insecure-Requests': '1',
    'Host': 'pixabay.com'
}

cookie = {
    '__cfduid': '<redacted>',
    'cf_clearance': '<redacted>',
    'anonymous_user_id': '<redacted>',
    '_sp_ses.aded': '*',
    '_sp_id.aded': '<redacted>',
    'is_human': '1',
    'client_width':'1540'
}
req = requests.get(url, headers=header, cookies=cookie)

print(req.status_code)
print(req.headers)