Пытаюсь получить данный с сайта
https://dexscreener.com/solana
Но там стоит Cloudflare:
Пытался использовать и
cloudscraper и
cloudflare-scrape показывает ошибку 403 что впринце логично, но в интернетах пишут что данные инструменты должны решать данную проблему
import asyncio
import cloudscraper
from create_bot import bot
from bs4 import BeautifulSoup
async def connect_to_websocket(fdv, admin_id):
try:
await bot.send_message(admin_id, "Открытие страницы Dexscreener...")
scraper = cloudscraper.create_scraper(disableCloudflareV1=True)
response = scraper.get("https://dexscreener.com/solana")
await bot.send_message(admin_id, f"{response.status_code}")
if response.status_code == 200:
body_content = response.content
await bot.send_message(admin_id, f"{response.status_code}")
soup = BeautifulSoup(body_content, 'html.parser')
target_element = soup.find(class_='ds-dex-table')
if target_element:
await bot.send_message(admin_id, f"Найден элемент: {target_element.text[:2000]}")
else:
await bot.send_message(admin_id, "Элемент с классом 'ds-dex-table' не найден.")
else:
await bot.send_message(admin_id, f"Ошибка при загрузке страницы: {response.status_code}")
except Exception as e:
await bot.send_message(admin_id, f"Ошибка при загрузке страницы или получении ссылок: {e}")
Также пытался использовать selenium
import asyncio
import time
import undetected_chromedriver as uc
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from create_bot import bot
from bs4 import BeautifulSoup
async def connect_to_websocket(fdv, admin_id):
options = uc.ChromeOptions()
options.add_argument("--headless") # Запуск в фоновом режиме
options.add_argument("--auto-open-devtools-for-tabs")
options.add_argument('--disable-blink-features=AutomationControlled')
driver = uc.Chrome(options=options)
try:
await bot.send_message(admin_id, "Открытие страницы Dexscreener...")
driver.get("https://dexscreener.com/solana")
time.sleep(5)
page_source = driver.page_source
soup = BeautifulSoup(page_source, 'html.parser')
body_content = soup.body
body_html = str(body_content)
await bot.send_message(admin_id, f"Текст страницы: {body_html[:2000]}")
# Ищем блок с нужным классом
target_block = soup.find('div', class_='ds-dex-table') # замените на нужный класс
if target_block:
body_html = str(target_block)
await bot.send_message(admin_id, f"Блок найден: {body_html[:2000]}")
else:
await bot.send_message(admin_id, "Блок не найден.")
except Exception as e:
await bot.send_message(admin_id, f"Ошибка при загрузке страницы или получении ссылок: {e}")
finally:
driver.quit()
Но здесь загружается только страница где типа надо ввести капчу Just a moment... Verify you are human...., но что делать дальше я уже не знаю, даже сам блок капчи не появляется, убил на это уже около недели и так никуда и не продвинулся.
Помогите кто чем может, я уже прям не знаю