В течение 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 **');
}
});
Прежде всего: если сторонний сайт прилагает много усилий для обнаружения ботов, они, вероятно, не хотят, чтобы вы использовали ботов, поэтому вы, вероятно, должны соблюдать.
Что касается способов обнаружения PhantomJS: существует множество, из неправильного порядка заголовков запросов, отсутствие плагинов мультимедиа для конкретных методов и даже раскрытие фантомов в трассировке стека ошибок.
Вот отличная презентация по этому вопросу: Обнаружение безгласных браузеров.
Я знаю, что просто ссылки на удаленные страницы не одобряются, но здесь слишком много разных моментов, и все они должны быть адресованы усилиям по обнаружению встречных сигналов.
Бонусное предложение: посмотрите на кукловода, если вы не слишком инвестированы в инфраструктуру PhantomJS.
Вещи, которые могут помочь в целом: