Phantomjs / Casperjs теперь не работает сайт обнаруживает бота

1

В течение 2 дней мои скрипты перестали работать. Если я выполняю работы вручную из любого браузера (Chrome, Mozilla и т.д.), Нет проблем. Я думаю, что проблема должна быть в заголовках фантомов. Как вы могли имитировать заголовки в phantomjs, как если бы это был обычный браузер? Эти строки ниже - это то, что показывает мне сайт, когда я получаю доступ с помощью pantomjs/casperjs

Прошу прощения...

Когда вы просматривали что-то о своем браузере, мы думали, что вы бот. Это может быть несколько причин:

Вы являетесь сильным пользователем, перемещающимся по этому сайту со сверхчеловеческой скоростью. Вы отключили JavaScript в своем веб-браузере. Сторонний плагин для браузера, такой как Ghostery или NoScript, предотвращает запуск JavaScript. Дополнительная информация доступна в этой статье поддержки.

После завершения CAPTCHA ниже вы сразу же получите доступ к

В моих сценариях у меня такая конфигурация:

var casper = require("casper").create ({
	engine: 'phantomjs', 
    exitOnError: false,
    ignoreSslErrors: true,
    waitTimeout: 5000,
    stepTimeout: 5000,
    verbose: true,
 
  pageSettings: {
        webSecurityEnabled: false,
        javascriptEnabled: true,
        loadImages: true,
        loadPlugins: true,
        localToRemoteUrlAccessEnabled: true,
        userAgent: 'Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36',
        XSSAuditingEnabled: false,
        logLevel: 'debug'
  },
  onWaitTimeout: function() {
       // this.echo('** Wait-TimeOut **');
  },
  onStepTimeout: function() {
        //this.echo('** Step-TimeOut **');
  }
});
  • 0
    Я пробовал с slimerjs, отбрасывая безголовые браузеры ... и то же самое все еще происходит. Если кто-то поможет мне, я могу удовлетворить!
Теги:
header
phantomjs
casperjs

2 ответа

1
Лучший ответ

Прежде всего: если сторонний сайт прилагает много усилий для обнаружения ботов, они, вероятно, не хотят, чтобы вы использовали ботов, поэтому вы, вероятно, должны соблюдать.

Что касается способов обнаружения PhantomJS: существует множество, из неправильного порядка заголовков запросов, отсутствие плагинов мультимедиа для конкретных методов и даже раскрытие фантомов в трассировке стека ошибок.

Вот отличная презентация по этому вопросу: Обнаружение безгласных браузеров.

Я знаю, что просто ссылки на удаленные страницы не одобряются, но здесь слишком много разных моментов, и все они должны быть адресованы усилиям по обнаружению встречных сигналов.

Бонусное предложение: посмотрите на кукловода, если вы не слишком инвестированы в инфраструктуру PhantomJS.

  • 0
    Совместимо ли это с фантомами?
  • 0
    Нет, но это очень похоже.
0

Вещи, которые могут помочь в целом:

  • Заголовки должны быть похожи на обычные браузеры, в том числе:
    • Пользователь-агент: используйте недавний (см. Https://developers.whatismybrowser.com/useragents/explore/) или, что еще лучше, используйте случайный недавний, если вы делаете несколько запросов (см. Https://github.com/skratchdot/random-useragent)
    • Accept-Language: что-то вроде "en, en-US; q = 0,5" (адаптировано для вашего языка)
    • Принять: стандартная будет выглядеть как "text/html, application/xhtml + xml, application/xml; q = 0,9,/; q = 0,8"
  • Навигация:
    • Если вы делаете несколько запросов, установите случайное время ожидания между ними
    • Если вы открываете ссылки, найденные на странице, соответственно установите заголовок Referer.
    • Или, лучше, имитировать активность мыши, чтобы двигаться, нажмите и перейдите по ссылке
  • Изображения должны быть включены
  • Javascript должен быть включен
    • Убедитесь, что " navigator.plugins " и " navigator.language " установлены в контексте страницы javascript клиента
    • Убедитесь, что используемый вами клиент не вводит заметные переменные JavaScript (например, _cdc, __nightmare...)
  • Используйте прокси

Ещё вопросы

Сообщество Overcoder
Наверх
Меню