В этой статье мы обсудим:
Что такое Java
Java — это язык программирования с открытым исходным кодом, который был разработан под девизом «напиши один раз, запусти где угодно». Это означает, что пока программа поддерживает Java, скрипты не нужно будет переписывать. Это полезный язык для программистов, привыкших к C и C++, поскольку синтаксис Java очень похож.
К основным преимуществам использования Java относятся:
- Очень популярная программа, благодаря чему существует большое онлайн-сообщество, которое может помочь вам в поддержке и устранении неполадок. Кроме того, есть обширная документация, которая значительно упрощает использование.
- Имеет динамические возможности, особенно когда речь идет, например, о «модификации исполняемого кода».
- Это открытый исходный код, который совместим с различными платформами, что позволяет использовать различные API (интерфейс прикладного программирования).
Хотите вручную установить Java на свой компьютер с Windows? Переходите на официальную страницу загрузки руководства .
Веб-скрапинг с помощью Java
Некоторые люди предпочитают использовать Selenium для парсинга или сбора данных с помощью Beautiful Soup. Однако другим популярным вариантом является использование Java для парсинга веб-страниц. Представляем пошаговое руководство – как это сделать.
Перед стартом убедитесь, что на вашем компьютере настроены следующие параметры для оптимального веб-скрапинга:
- Java11– Существуют более продвинутые версии, но эта остается самой популярной среди разработчиков.
- Maven – Инструмент автоматизации построения для управления зависимостями и т.п.
- IntelliJ IDEA – Представляет собой IDE для разработки компьютерного ПО, написанного на Java.
- HtmlUnit – Симулятор активности браузера (например, имитация отправки формы).
Вы можете проверить установку с помощью этих команд:
- ‘java -version’
- ‘mvn -v’
Шаг №1: Изучение целевой страницы
Перейдите на целевой сайт, с которого хотите собрать данные, щелкните правой кнопкой мыши в любом месте и нажмите «Проверить код», чтобы открыть «Консоль разработчика», предоставляющую доступ к HTML сайта.
Шаг №2: Парсинг HTML
Откройте IntelliJ IDEA и создайте проект Maven:
Проекты Maven имеют файл pom.xml. Перейдите к файлу pom.xml и установите версию JDK для вашего проекта:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
Затем, поскольку мы будем использовать htmlunit, добавьте
<dependencies>
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.63.0</version>
</dependency>
</dependencies>
Теперь можем приступить к написанию первого класса Java. Начните с создания нового исходного файла Java.
Нам нужно создать главный метод для запуска приложения. Сделайте его следующим образом:
public static void main(String[] args) throws IOException {
}
Приложение будет запускаться с помощью этого метода. Он является точкой входа приложения. Теперь можете отправить HTTP-запрос, используя импорт HtmlUnit:
import com.gargoylesoftware.htmlunit.*;
import com.gargoylesoftware.htmlunit.html.*;
import java.io.IOException;
import java.util.List;
Now create a WebClient by setting the options as follows:
private static WebClient createWebClient() {
WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setJavaScriptEnabled(false);
return webClient;
}
Шаг №3: Извлечение/анализ данных из HTML
Теперь давайте извлечем интересующие нас данные о целевой цене. Для этого будем использовать встроенные команды HtmlUnit. Вот как это будет выглядеть для точек данных, относящихся к «цене продукта»:
WebClient webClient = createWebClient();
try {
String link = "https://www.ebay.com/itm/332852436920?epid=108867251&hash=item4d7f8d1fb8:g:cvYAAOSwOIlb0NGY";
HtmlPage page = webClient.getPage(link);
System.out.println(page.getTitleText());
String xpath = "//*[@id=\"mm-saleDscPrc\"]";
HtmlSpan priceDiv = (HtmlSpan) page.getByXPath(xpath).get(0);
System.out.println(priceDiv.asNormalizedText());
CsvWriter.writeCsvFile(link, priceDiv.asNormalizedText());
} catch (FailingHttpStatusCodeException | IOException e) {
e.printStackTrace();
} finally {
webClient.close();
}
Чтобы получить XPath нужного элемента, воспользуйтесь консолью разработчика. В ней щелкните правой кнопкой мыши на выбранный раздел и выберите «Копировать XPath». Эта команда скопирует выбранный раздел в виде выражения XPath:
Веб-страницы содержат ссылки, текст, графику и таблицы. Если вы выберете XPath таблицы, то сможете экспортировать ее в CSV и выполнять дальнейшие расчеты и анализ с помощью Microsoft Excel. В следующем шаге рассмотрим экспорт таблицы в виде файла CSV.
Шаг №4: Экспорт данных
Теперь, когда данные проанализированы, можно экспортировать их в формат CSV для дальнейшего анализа. Этот формат может быть предпочтительнее для некоторых профессионалов, поскольку его можно легко открыть/просмотреть в Microsoft Excel. Ниже приведены командные строки для выполнения этой задачи:
public static void writeCsvFile(String link, String price) throws IOException {
FileWriter recipesFile = new FileWriter("export.csv", true);
recipesFile.write("link, price\n");
recipesFile.write(link + ", " + price);
recipesFile.close();
}
Подведем итоги
Java может быть эффективным способом получения доступа к целевым данным, которые нужны бизнесу, для программистов, специалистов по данным и групп экспертов. Однако использование Java для веб-скрапинга может оказаться трудоемкой задачей. Поэтому многие компании решили полностью автоматизировать операции по сбору данных. Используя инструмент Web Scraper IDE, любой сотрудник фирмы может собирать необходимые данные без кода. Все что нужно сделать, это выбрать целевой сайт и набор данных, а затем желаемую «частоту сбора», «формат» и «метод доставки».