Почему 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
- выполнил описанный выше процесс, но получил ошибку 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
Мобильная версия