Когда-то люди, ищущие информацию, должны были физически войти в библиотеку brick-and-mortar, чтобы найти нужные книги и внимательно прочитать их.

Сегодня кажется, что любые данные, которые вы ищете, существуют в Интернете. В любой момент в World Wide Web есть более миллиарда веб-сайтов, содержащих достаточно информации, чтобы собрать 305 миллиардов печатных листов бумаги.

Хорошей новостью является то, что независимо от того, какие данные вы ищете, вы можете быть уверены в том, что найдете ее в Интернете. Плохая новость заключается в том, что в Интернете так много данных, что личная фильтрация контента становится физически невозможным.

Добавьте к тому факту, что большинство веб-сайтов имеют разные области, форматы и рамки. Например, около 30% веб-сайтов используют WordPress, а остальные используют множество других платформ, таких как Joomla, Drupal, Magento и т. д.

Введение в веб-сканирование. Веб-сканеры – это автоматизированные инструменты сбора данных, которые взаимодействуют с веб-сайтами от имени своих владельцев. Это позволяет получить доступ к данным, готовым к выводу, в локальную базу данных или электронную таблицу для дальнейшего анализа.

Хотя это может показаться сложным, правда в том, что создание веб-сканера с использованием Selenium – довольно простой процесс. Давайте погрузимся и узнаем, что вам нужно для начала.

Существует два способа сканирования веб-данных

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

Но крупные интернет-компании, такие как Google, сканируют данные все время. Единственное различие заключается в том, что они спрашивают разрешения и предлагают что-то взамен (в случае Google, размещение в поисковой системе номер один в мире). Что вы делаете, если вам нужен доступ к данным и у вас нет удобной поддержки мощного экономического стимула на вашей стороне?

Вы можете использовать Selenium для сбора данных с веб-сайтов через браузер – точно так же, как обычный пользователь. Но поскольку веб-администраторам это не нравится, вам понадобится прокси от установите Maven, который вы собираетесь использовать для создания Java-программы.

Как только Maven будет готов, вы должны добавить эту зависимость в POM.xml:

Теперь просто запустите процесс сборки, и вы готовы сделать первые шаги с Selenium.

Основное введение в использование Selenium

 

Начнем с чего-то простого. Сначала создайте экземпляр ChromeDriver:

WebDriver driver = new ChromeDriver();

 

Теперь откроется окно Google Chrome. Чтобы перейти на страницу веб-страницы, используйте эту команду (например, пример example.ru):

driver.get("http://www.example.ru");

 

Чтобы найти элементы HTML на странице, используйте WebDriver.findElement(). Чтобы получить заголовок страницы, ваша команда должна выглядеть так:

System.out.println("Title: " +
driver.getTitle());

 

Так работает Selenium. Он присваивает браузеру матрицу кодирования, чтобы вы могли автоматизировать то, что обычно делали бы вручную. Это простой и мощный способ выполнить широкий круг задач, требующих больших затрат времени. Чтобы закрыть сеанс, используйте следующую команду:

driver.quit();

 

Вот и все. Вы успешно контролируете сеанс браузера, используя Java в Selenium.

Прокси – что искать при построении веб-сканера с помощью Selenium

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

Никто не может гарантировать, что ваш веб-скребок никогда не попадет в черный список, но выбор правильного прокси-сервера может иметь большое значение и улучшить ожидаемую продолжительность жизни вашего сканера.

 

Большинство веб-сайтов будут блокировать поисковые роботы на основе IP-адреса исходного сервера или хостинг-провайдера. Умные веб-администраторы будут использовать интеллектуальные инструменты для определения шаблона определенного пула IP-адресов, а затем блокировать весь пучок.

Вам нужен прокси-сервер, который может переключаться между несколькими IP-адресами. Не соглашайтесь на простое решение:

  • Некоторые эксперты рекомендуют использовать от 50 до 100 различных IP-адресов, чтобы убедиться, что у вас достаточно большой пул.
  • Убедитесь, что вы не получаете последовательных IP-адресов (например, с 1.2.3.4 до 1.2.3.5 до 1.2.3.6). Вам нужны рандомизированные IP-адреса без логической корреляции между ними.

Важно то, что Selenium по своей природе сложно настраивается. Ваши навыки воображения и кодирования – это единственный предел вашей способности создавать веб-сканер с использованием Selenium.

Например, если вы используете библиотеку Requests,  то вы можете написать код для использования прокси-IP-адресов с Selenium следующим образом:

r = requests.get('example.ru',headers=headers,proxies={'https': proxy_url})
proxy = get_random_proxy().replace('n', '')
service_args = [

'--proxy={0}'.format(proxy),

'--proxy-type=http',

'--proxy-auth=user:password'

]

print('Processing..' + url)

driver = webdriver.PhantomJS(service_args=service_args)

 

Где example.ru – это веб-сайт, к которому вы хотите получить доступ, и get_random_proxy – это команда для получения случайного прокси из вашего пула.

Но это только начало интеграции прокси с вашим веб-браузером Selenium. Существует гораздо больше возможностей:

  • Вы можете запрограммировать Selenium на внедрение системы, которая устанавливает частоту IP-адреса, посещающего целевой сайт в день или в час, а затем отключает этот IP-адрес в течение 24 часов, как только он достигнет своего предела.
  • Вы можете установить Selenium для записи IP-адресов, которые попадают в черный список. Это позволяет оптимизировать процесс запроса новых IP-адресов, поскольку вам нужно только заменить блокируемые.
  • Вы можете увеличить время ожидания загрузки страницы Selenium, чтобы настроить время ожидания. Если вы перенапрягаете целевой сервер и используете прокси-серверы, вам может потребоваться настроить время ожидания загрузки страницы, чтобы сделать Selenium более терпеливым. Инвестирование в более качественный прокси-сервер может обеспечить более быстрое время отклика.

Благодаря мощному инструменту Selenium, поддерживаемому прокси-серверами, на которые вы можете положиться, вы сможете беспрепятственно собирать данные из любого места в Интернете, не подвергая уязвимости. Наслаждайтесь и радуйтесь поиском!

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

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

Источник: AndreyEx.ru