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