Безголовый браузер драматурга заблокирован Adzuna Land/Ad/Redirect — «Доступ запрещен» — как разрешить цепочку перенапраPython

Программы на Python
Ответить
Anonymous
 Безголовый браузер драматурга заблокирован Adzuna Land/Ad/Redirect — «Доступ запрещен» — как разрешить цепочку перенапра

Сообщение Anonymous »

Проблема
Я создаю автоматизированную систему подачи заявок на работу. Когда пользователь нажимает «Автоматически подать заявку» в списке вакансий Adzuna, моему серверу необходимо пройти по цепочке перенаправления к фактической форме заявления работодателя и заполнить ее автоматически.
Списки вакансий Adzuna следуют этой цепочке перенаправлений:

Код: Выделить всё

https://www.adzuna.com.au/details/{id}   ← job listing (loads fine)
→ https://www.adzuna.com.au/land/ad/{id}  ← tracking redirect (BOT BLOCKED)
→ https://click.appcast.io/t/{token}     ← appcast tracking
→ https://hatch.team/job/{slug}         ← employer platform
→ https://jobs.ashbyhq.com/{company}/{id}/application  ← actual form
Что работает:
  • Переход на страницу сведений об Adzuna с помощью Playwright — работает нормально.
  • Извлечение URL-адреса земли/объявления/ из кнопки «Применить» — работает нормально.
  • Прослеживание всей цепочки с помощью Firecrawl (скрытно). proxy) — корректно преобразуется в окончательный URL-адрес Ashby ATS
Что не получается: Каждый метод, который я пытаюсь разрешить Land/ad/, возвращает страницу «Доступ запрещен», обслуживаемую самой Adzuna (а не Cloudflare — это страница ошибок под брендом Adzuna):

Код: Выделить всё

Access Denied
[*]
Попытки на данный момент:
  • Playwright .goto(land_url) — «Доступ запрещен» (200 ОК, бот обнаружен)
  • с заголовками в стиле браузера:[/b]

Код: Выделить всё

headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...",
"Accept": "text/html,application/xhtml+xml,...",
"Accept-Language": "en-AU,en;q=0.9",
"Referer": "https://www.adzuna.com.au/",
}
async with httpx.AsyncClient(headers=headers, follow_redirects=True) as client:
r = await client.get(land_url)
# r.url is still adzuna.com/land/ad/... — "Access Denied"
  • httpx с файлами cookie сеанса Playwright + правильным реферером (страница сведений была загружена Playwright, поэтому на ней имеются действительные файлы cookie сеанса):

Код: Выделить всё

pw_cookies = await page.context.cookies()
session_cookies = {c["name"]: c["value"] for c in pw_cookies if "adzuna" in c["domain"]}
# Still "Access Denied"
  • Антиобнаружение в контексте драматурга:

Код: Выделить всё

browser = await pw.chromium.launch(args=[
"--disable-blink-features=AutomationControlled",
])
context = await browser.new_context(user_agent="...", locale="en-AU")
await context.add_init_script("Object.defineProperty(navigator,'webdriver',{get:()=>undefined})")
# Details page still loads fine, but land/ad/ still blocks
Вопрос
Как мне разрешить перенаправление Adzuna Land/ad/ программным путем без использования человеческого браузера? В частности:
  • Поможет ли этот отпечаток TLS (JA3/JA4) — Curl_cffi с impersonate="chrome124"?
  • Есть ли другой способ получить конечный URL-адрес работодателя со страницы сведений HTML/API Adzuna, вообще не проходя через Land/ad/?
  • Кто-нибудь знает, раскрывает ли Adzuna целевой URL-адрес где-либо (JSON-LD, атрибуты данных, ответ XHR) на странице сведений?
Среда: Python 3.11, Playwright 1.44, httpx 0.27, работает без заголовка на Windows Server / локальном устройстве.
Ответить

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

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

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

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

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