Préparer un environnement de scraping avec Docker et Java

Qu'est-ce que c'est ça

Préparez l'environnement Scraping avec Java. Cependant, je ne veux pas installer Chrome, alors laissez Docker (selenium / standalone-chrome) le faire.

référence

Merci beaucoup. https://qiita.com/wizpra-koyasu/items/7b7e0938ad6d36caf4be https://stackoverflow.com/questions/12836114/selenium-webdriver-remote-setup https://www.seleniumhq.org/docs/03_webdriver.jsp

Conditions préalables

Exécutez le chrome autonome de Selenium

C'est très simple. Cliquez simplement sur + NOUVEAU dans Kitematic, recherchez standalone-chrome et CREATE Si vous le démarrez en toute sécurité, vous verrez sur quel port il est ouvert à ʻACCESS URL`, alors notez-le. Si vous comprenez, je pense que vous devriez spécifier les ports

Hit Selenium de Java

Presque l'exemple de code

package org.openqa.selenium.example;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Selenium2Example  {
    public static void main(String[] args) {
        // Create a new instance of the Firefox driver
        // Notice that the remainder of the code relies on the interface,
        // not the implementation.

        DesiredCapabilities capability = DesiredCapabilities.chrome();

        WebDriver driver = null;
		try {
			driver = new RemoteWebDriver(new URL("http://localhost:32778/wd/hub"),
			        capability);
		} catch (MalformedURLException e) {
			//Bloc de capture généré automatiquement TODO
			e.printStackTrace();
		}

		if(driver != null) {

	        // And now use this to visit Google
	        driver.get("http://www.google.com");
	        // Alternatively the same thing can be done like this
	        // driver.navigate().to("http://www.google.com");

	        // Find the text input element by its name
	        WebElement element = driver.findElement(By.name("q"));

	        // Enter something to search for
	        element.sendKeys("Cheese!?");

	        // Now submit the form. WebDriver will find the form for us from the element
	        element.submit();

	        // Check the title of the page
	        System.out.println("Page title is: " + driver.getTitle());

	        // Google's search is rendered dynamically with JavaScript.
	        // Wait for the page to load, timeout after 10 seconds
	        (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
	            public Boolean apply(WebDriver d) {
	                return d.getTitle().toLowerCase().startsWith("cheese!");
	            }
	        });

	        // Should see: "cheese! - Google Search"
	        System.out.println("Page title is: " + driver.getTitle());

	        //Close the browser
	        driver.quit();
		}
    }
}

Puisque Selenium est utilisé, mettez la bibliothèque dans Maven ou Gradle. J'ai utilisé Maven

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>hoge</groupId>
	<artifactId>fuga</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
	<dependencies>
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<version>2.41.0</version>
		</dependency>
	</dependencies>

</project>

Si vous le déplacez avec ceci, vous devriez obtenir la sortie suivante ... C'est facile.

Page title is: Cheese!? -recherche Google
Page title is: Cheese!? -recherche Google

Question

Où sera-t-il stocké lorsque je l'emmènerai? J'ai créé WebDriver de Remote pour la première fois, mais je me demande si l'image générée peut être contrôlée côté client. Ou sera-t-il conservé sur le serveur et collecté? Eh bien, je suis sûr que c'est l'ancien ... Découvrons demain ...

Recommended Posts

Préparer un environnement de scraping avec Docker et Java
Préparer l'environnement pour java11 et javaFx avec Ubuntu 18.4
Créez un environnement Vue3 avec Docker!
Préparer l'environnement de développement Java avec Atom
Préparer l'environnement de développement Java avec VS Code
Créer un environnement de développement PureScript avec Docker
Créer un environnement de développement Wordpress avec Docker
Installez Docker et créez un environnement d'exécution Java
J'ai construit un environnement de rails avec docker et mysql, mais j'étais malade
[Memo] Créez facilement un environnement CentOS 8 avec Docker
Rendre l'environnement SpringBoot1.5 + Gradle4.4 + Java8 + Docker compatible avec Java11
[Windows] [IntelliJ] [Java] [Tomcat] Créer un environnement pour Tomcat 9 avec IntelliJ
Créer un environnement Laravel / Docker avec VSCode devcontainer
Créez rapidement un environnement de développement WordPress avec Docker
Création d'un environnement de développement pour les applications Web Java avec Docker pour Mac Part1
[Copier et coller] Créez un environnement de développement Laravel avec Docker Compose, partie 2
Créer un environnement de développement pour Docker, Java, vs code
Créer un environnement de développement d'applications Web Java avec Docker pour Mac Part2
Créer un environnement de développement Spring Boot avec docker
Créer un environnement de développement Java avec VS Code
Créez un environnement Apache et Tomcat avec Docker. À propos, coopération Maven & Java
[Note] Créez un environnement Python3 avec Docker dans EC2
Essayez de créer un environnement de développement Java à l'aide de Docker
Création d'un environnement Java léger qui s'exécute sur Docker
Créer un environnement Docker avec WSL
Analyse HTML (scraping) avec JAVA
[Rails] [Docker] Le copier-coller est OK! Comment créer un environnement de développement Rails avec Docker
Comment quitter Docker pour Mac et créer un environnement de développement Docker avec Ubuntu + Vagrant
Création d'un environnement où kotlin peut être compilé avec cli avec docker et exécuté avec java
Docker x Java Construire un environnement de développement trop simple
Déploiement d'un environnement Java avec le sous-système Windows pour Linux (WSL)
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai créé un environnement de développement avec rails6 + docker + postgreSQL + Materialise.
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Communication socket avec un navigateur Web utilisant Java et JavaScript ②
Communication socket avec un navigateur Web utilisant Java et JavaScript ①
Créez un environnement pour Rails5 et postgresql avec Docker afin que pgadmin puisse également être utilisé
Java: démarrez WAS avec Docker et déployez votre propre application
Créer un environnement de développement d'équipe Java et JavaScript (construction d'environnement gradle)
J'ai essayé de créer un environnement de développement padrino avec Docker
Créer un environnement Node.js avec Docker Compose
Créer un environnement local Couchbase avec Docker
Construire un projet Java avec Gradle