Python запросов в Pixabay - PullRequest
       22

Python запросов в Pixabay

0 голосов
/ 12 февраля 2020

Я пытаюсь отправить запрос в 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). Как я могу сделать, чтобы работать?

1 Ответ

1 голос
/ 12 февраля 2020

Pixabay имеет защиту Cloudflare, которая требует, чтобы вы решали капчу, если вы подключаетесь с черного списка IP.

Чтобы обойти это, вы должны сначала подключиться через браузер, а затем скопировать заголовки и файлы cookie в ваш python скрипт. Это работает для меня, но вы должны заменить детали, такие как __cfduid, который является вашим отпечатком облака, чтобы получить доступ к веб-сайту. Также проверьте правильность вашего 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)
...