Почему Cloudflare блокирует мой запрос Python, но разрешает запросы Postman с теми же заголовками?Python

Программы на Python
Ответить
Anonymous
 Почему Cloudflare блокирует мой запрос Python, но разрешает запросы Postman с теми же заголовками?

Сообщение Anonymous »

Я пытаюсь отправить запрос к конечной точке, защищенной Cloudflare, используя библиотеку запросов Postman и Python. Запрос в Postman выполняется успешно, но в Python я получаю ошибку 403. Я убедился, что заголовки (например, User-Agent, Accept и т. д.) в моем скрипте Python совпадают с заголовками в Postman, но запрос по-прежнему блокируется.
Почему Cloudflare блокирует мой запрос Python, разрешая запросы Postman? Как я могу это исправить?
Я могу добиться результата ниже, используя селен или безголовый селен, но я хочу знать, почему я не могу сделать это с помощью запросов, хотя это можно сделать в почтальоне.< /p>
когда я запускаю почтальона, он дает такой результат
{
"schemaVersion": "1.0.0",
"cg": null,
"gp": null,
"ts": null,
"cmc": null,
"ti": {
"id": "R4zj9VDraGU9JFViH7mojY",
"chain": {
"id": "solana"
},
"address": "5aBbK8HPtwH9DvXnSTXbakRW34ateooZK1bnb7qhegeZ",
"name": "Dino Game",
"symbol": "DINO",
"description": "$DINO is a one-of-a-kind GameFi meme coin that brings the nostalgia of the classic Dino Game to life while offering real-world rewards. It’s where fun meets utility, creating a revolutionary experience in the meme coin space.",

}}
код ниже создан с помощью почтальона
import requests

url = "https://io.dexscreener.com/dex/pair-det ... 7gh1K62CAm"

payload = {}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0',
'Cookie': '__cf_bm=Pa25nvnzsUCW1AnI5oCV6ZDLXV8HY.VjsZM1squ8D30-1735078602-1.0.1.1-7WIFetntuMUCOgKEH0XlF8uKq8e4t5sS403X8XEwzkrACUTs1woAlaXzzmN65nZksyujfMGKiD_HqyD9MRED6mASCQxtAbySJGLSyGVVvII; __cflb=04dTof7UnGZLJbSktrXU5s6TEcm2ZGkWquifmfRNx5'
}

response = requests.request("GET", url, headers=headers)

print(response.text)
  • Я скопировал запросы URL-адресов из Chrome и вставил в Postman, это не сработало.
  • Я скопировал запросы URL-адресов из Firefox и вставьте в почтальон, все сработало.
  • что я заметил?


    Firefox
  • открыть режим проверки
  • скопировать и вставить этот URL "https://io.dexscreener.com/dex/pair-details/v3/ solana/HKj2acbuMto92TvjtBfpPyG2im28og5b647gh1K62CAm"
  • откройте этот URL в Firefox --> скопируйте значение -->> скопируйте как Curl(windows)
  • открываем почтальон, вставляем эти данные и запускаем, получаем ответ с кодом состояния 200
chrome
  • выполнил описанный выше процесс, но получил ошибку 403.
    чтобы получить код 200, я снимаю галочки со всех клавиш, например ( принять, dnt, приоритет, соединение, принять-кодирование и т. д...)
  • если мы скопируем пользовательский агент из данных Firefox и вставим его в Chrome, это не сработает, если мы не изменим имя ключа с пользовательского агента на Пользовательский агент (слышите, я речь идет о маленьком символе и верхнем символе)
  • нам нужно только 2 значения в последнем, чтобы получить код 200 в почтальоне.
после этого я сгенерировал этот код ниже, используя почтальона. но в сценарии это не работает.
import requests

url = "https://io.dexscreener.com/dex/pair-det ... 7gh1K62CAm"

payload = {}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0',
'Cookie': 'cookie data'} ## (i changed cookie data here, we can get cookie using above mentioned mmethod)

response = requests.request("GET", url, headers=headers)

print(response.text)


Подробнее здесь: https://stackoverflow.com/questions/793 ... s-with-the
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»