Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor

was ist das

Bereiten Sie die Scraping-Umgebung mit Java vor. Ich möchte Chrome jedoch nicht installieren, also lassen Sie Docker (Selen / Standalone-Chrome) dies tun.

Referenz

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

Voraussetzungen

Führen Sie Selenium Standalone-Chrome aus

Das ist sehr einfach. Klicken Sie einfach in Kitematic auf "+ NEU" und suchen Sie nach "Standalone-Chrome" und "CREATE" Wenn Sie es sicher starten, sehen Sie unter "ACCESS URL", in welchem Port es veröffentlicht ist. Notieren Sie sich dies. Ich denke, diejenigen, die verstehen, sollten Ports angeben

Hit Selenium aus Java

Fast der Beispielcode

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) {
			//TODO automatisch generierter Fangblock
			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();
		}
    }
}

Da Selen verwendet wird, legen Sie die Bibliothek in Maven oder Gradle ab. Ich habe Maven benutzt

<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>

Wenn Sie es damit verschieben, sollten Sie die folgende Ausgabe erhalten ... Es ist einfach.

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

Frage

Wo wird es aufbewahrt, wenn ich es nehme? Ich habe zum ersten Mal den WebDriver von Remote erstellt, frage mich jedoch, ob das generierte Image auf der Clientseite gesteuert werden kann. Oder wird es auf dem Server gespeichert und gesammelt? Nun, ich bin sicher, es ist das erstere ... Lass es uns morgen herausfinden ...

Recommended Posts

Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
Bereiten Sie die Umgebung für Java11 und JavaFx mit Ubuntu 18.4 vor
Erstellen Sie mit Docker eine Vue3-Umgebung!
Bereiten Sie die Java-Entwicklungsumgebung mit Atom vor
Bereiten Sie die Java-Entwicklungsumgebung mit VS Code vor
Erstellen Sie mit Docker eine PureScript-Entwicklungsumgebung
Erstellen Sie mit Docker eine Wordpress-Entwicklungsumgebung
Installieren Sie Docker und erstellen Sie eine Java-Ausführungsumgebung
Ich habe eine Rails-Umgebung mit Docker und MySQL erstellt, aber ich war krank
[Memo] Erstellen Sie mit Docker ganz einfach eine CentOS 8-Umgebung
Machen Sie die SpringBoot1.5 + Gradle4.4 + Java8 + Docker-Umgebung mit Java11 kompatibel
[Windows] [IntelliJ] [Java] [Tomcat] Erstellen Sie mit IntelliJ eine Umgebung für Tomcat 9
Erstellen Sie eine Laravel / Docker-Umgebung mit VSCode devcontainer
Erstellen Sie mit Docker schnell eine WordPress-Entwicklungsumgebung
Erstellen einer Entwicklungsumgebung für Java-Webanwendungen mit Docker für Mac Teil1
[Kopieren und Einfügen] Erstellen Sie mit Docker Compose Part 2 eine Laravel-Entwicklungsumgebung
Erstellen Sie eine Entwicklungsumgebung für Docker, Java und Code
Erstellen Sie mit Docker für Mac Teil2 eine Entwicklungsumgebung für Java-Webanwendungen
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Erstellen Sie mit Docker eine Apache- und Tomcat-Umgebung. Übrigens Maven & Java Kooperation
[Hinweis] Erstellen Sie eine Python3-Umgebung mit Docker in EC2
Versuchen Sie, mit Docker eine Java-Entwicklungsumgebung zu erstellen
Erstellen einer kompakten Java-Umgebung, die unter Docker ausgeführt wird
Erstellen einer Docker-Umgebung mit WSL
HTML-Analyse (Scraping) mit JAVA
[Rails] [Docker] Kopieren und Einfügen ist in Ordnung! So erstellen Sie eine Rails-Entwicklungsumgebung mit Docker
So beenden Sie Docker für Mac und erstellen eine Docker-Entwicklungsumgebung mit Ubuntu + Vagrant
Erstellt eine Umgebung, in der Kotlin mit Docker mit CLI kompiliert und mit Java ausgeführt werden kann
Docker x Java Erstellen einer zu einfachen Entwicklungsumgebung
Bereitstellen einer Java-Umgebung mit Windows Subsystem für Linux (WSL)
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Ich habe eine Entwicklungsumgebung mit Rails6 + Docker + PostgreSQL + Materialise erstellt.
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ②
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ①
Erstellen Sie mit Docker eine Umgebung für Rails5 und postgresql, damit auch pgadmin verwendet werden kann
Java: Starten Sie WAS mit Docker und stellen Sie Ihre eigene Anwendung bereit
Erstellen Sie eine Java- und JavaScript-Teamentwicklungsumgebung (Gradle-Umgebungskonstruktion)
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
Erstellen Sie die Node.js-Umgebung mit Docker Compose
Erstellen Sie mit Docker eine lokale Couchbase-Umgebung
Erstellen eines Java-Projekts mit Gradle