Разница между пользователем и ботом - PullRequest
0 голосов
/ 22 января 2019

Я практикуюсь в рельсах, и возникает следующий вопрос - как сайт определяется пользователем, человеком или ботом?

Я использую RoR - Капибара с Полтергейстом

Существует следующий код:

require 'capybara/poltergeist'
options = {}

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, options)
end

session =Capybara::Session.new(:poltergeist)
session.driver.headers = { 'User-Agent' => ''}

session.visit 'https://gumtree.com'
session.save_and_open_page

В поле User-Agent я устанавливаю свои данные и выполняю код. Если я просто перейти к URL - страница отображается правильно. Если я запускаю код, он сохраняет пустую страницу, куда он перенаправляет.

Я очистил печенье. У нас один и тот же IP-адрес. Какие еще признаки у нас разные?

1 Ответ

0 голосов
/ 22 января 2019

Существует много разных способов, которыми сайт может определить, что вы используете инструмент автоматизации. Два самых простых в этом случае

  1. Poltergeist загружает несколько JS на каждую страницу, которые легко обнаруживаются.
  2. Poltergeist не поддерживает тонну новых CSS / JS, поэтому сайт может быть протестирован браузером, поскольку он выглядит как 7-летняя версия Safari и считает его достаточно подозрительным, чтобы предположить, что это бот.

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

...