Чат создан чтобы делиться опытом о Scrapy/Python и другими парсинг технологиями. Вежливость и уважение к другим участникам группы. Троллинг не приветствуется. FAQ: https://github.com/bulatbulat48/ru-scrapy-python Работа: t.me/scrapy_jobs
Поменять бы код в доках https://doc.scrapy.org/en/latest/topics/practices.html для Same example but running the spiders sequentially by chaining the deferreds
на более правильный, или заметку какую приписать, а то если начиная со scrapy 2.13.0 не выставить в TWISTED_REACTOR=None (из-за теперешнего The asyncio reactor is now enabled by default
), все ломается с этими @defer.inlineCallbacks
и reactor.run()
, reactor.stop()
(как минимум под win10, но думаю os тут не особо влияет).
Яндух кроме всего прочего генерацию canvas проверят. У серверов, обычно, нет видюх, значит canvas CPUшный. Соответственно, он легко отличимый от среднестатистического компа пользователя. Рашать капчу - нет никаких проблем.
Читать полностью…Спасибо, но вопрос скорее про то, как модифицировать селениум скрипт/какое прокси купить, чтобы такая капча не выскакивала (или выскакивала редко)
на моем компе ее нет (тестировал скрипт больше часа)
Да, возможно
Уже покупал прокси на сайте proxy-seller.io
но сатло еще хуже - даже на моем компе сразу вылезает сложная капча
Привет посоветуйте, пожалуйста, настройки селениума / сервсис прокси, чтобы парсить яндекс
https://stackoverflow.com/questions/79626509/how-to-improve-selenium-script-so-that-the-captcha-does-not-appear
На моей ноутбуке скрипт работает прекрасно (в headless режиме) - выскакивает только чекбокс "Я не робот", успешно его решаю
Но на сервере скрипт получает вот такую капчу (приложил фото)
Все привет
Делаю небольшую автоматизацию scrapy и playwright.
Мне нужно открыть страницу с капчей DadaDome я использую сервис 2captcha для её решения. Результат куков я вставляю таким образом.
async def _apply_solution(self, data: dict, captcha_url: str) -> None:
cookie_str = data['code']
name, rest = cookie_str.split("=", 1)
value = rest.split(";", 1)[0]
print(cookie_str)
# парсим Max-Age
m = re.search(r"Max-Age=(\d+)", cookie_str, re.IGNORECASE)
max_age = int(m.group(1)) if m else None
# вычисляем UNIX-время истечения
expires = int(time.time()) + max_age if max_age is not None else None
host = urlparse(self._page.url).hostname
domain = "." + ".".join(host.split(".")[-2:])
cookie = {
"name": name.strip(),
"value": value.strip(),
"domain": domain,
"path": "/",
"httpOnly": False,
"secure": True,
"sameSite": "Lax",
}
# только если парсинг Max-Age удался — добавляем expires
if expires is not None:
cookie["expires"] = expires
geo_cookie = cookie.copy()
geo_cookie["domain"] = "geo.captcha-delivery.com"
# await asyncio.sleep(1000)
await self._page.context.add_cookies([cookie, geo_cookie])
# 3) теперь вернуться/перезагрузить исходную страницу — DataDome пропустит вас
await self._page.goto(self._page.url, wait_until="networkidle")
их сбрасывает и получаю «скрин».
Кажется нету, как я понял клаудфаер требует js скрипт чтобы выполнялся. А без вебдвижка не получится это сделать.
Читать полностью…Всем привет. Не существует способов обойти клаудфлеер в формате http запросов?
Не интересует обход с помощью обнаружения айпи сервера, веб движков(селениум и прочее)
видел в доке что никак нельзя, но может есть какой то способ
Читать полностью…потому что он скоро умрёт
https://github.com/scrapy/scrapy/pull/6729#discussion_r2012115159
Выпустили 2.13.0: https://docs.scrapy.org/en/latest/news.html#scrapy-2-13-0-2025-05-08
Читать полностью…да ни в каком, это прототип, один под своим ип второй через впн
Читать полностью…А как ее решать селениумом?
Вот вижу капчу, могу сохранить скриншот, как правильно прокрутить ее)
Судя по всему это играет не маловажную роль. Избавится навряд ли получится потому что засрать можно любую белую прокси
Читать полностью…cap.guru решает. А дальше смотрите частоту выскакивания / профит от парсинга
Читать полностью…попробовал ради прикола прогнать w3lib через mypyc, всё с первого раза скомпилилось, но прироста в скорости, по крайней мере в тестах, никакого)
Читать полностью…js он не всегда требует. Только если определенные условия не соблюдены
Читать полностью…Через JS можно, если iframe с одного домена или есть разрешение CORS. Иначе только через снимок, но без взаимодействия.
Для взаимодействия при запрете CORS только эмуляция или копирование NODE с iframe + убивание оригинала.
Т.е. ответ - Да, можно ВСЁ.
ну через интерфейс, да можно, если это технически возможно
т.е. нажимаем на кнопку по координатам
эмулируем перемещение мышки и реальный клик
привет, возможно ли на playwright либо селениуме добраться к элементам в shadow root closed?
Читать полностью…Здравствуйте, нужен парсер срочно, работа на долгосрочное сотрудничество пишите в лс
Читать полностью…