selenium 爬虫入门 java版(最后有彩蛋)

本周主要介绍的是 selenium 在windows下环境的搭建以及demo的运行。

selenium 是什么本章就不做过多的介绍了。

1.环境的准备

chrome(谷歌浏览器)和chromedriver(谷歌浏览器驱动)

这里面有chrome 对应 chromedriver的各个版本
http://chromedriver.chromium.org/downloads
如果觉得这个不太好找的话就看看这个国内的某位好心人总结的里面的关系对应简介一点不过关于最新的更新可能不及时,之后我会发布一个更新及时的帖子出来。
https://blog.csdn.net/huilan_same/article/details/51896672

chromedriver下载地址,备用地址,由于搜集的chrome的各个版本不是很全,这里就不提供chrome的下载地址了。
http://chromedriver.storage.googleapis.com/index.html

本次我用的是 chrome 70 - chromedriver_win32_2.39版本

2.简单的入门


import java.io.File;
import java.io.IOException;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.chrome.ChromeOptions;

public class TestSeleniumUtil {

    public static final String CHROME_PATH = "chrome绝对路径";
    public static final String CHRONE_DRIVER_PATH = "chromedriver绝对路径";
    public static final String TMALL = "https://www.tmall.com/";

    private static ChromeDriverService service;

    private static WebDriver driver;

    /**
     * 
     * @描述:稍微复杂一点
     * 优势:
     * 1.可随意配置chrome、chromedriver路径
     * 2.可控制对应浏览器进程以及驱动进程的生死
     */
    public static void demo() {
        service = new ChromeDriverService.Builder().usingDriverExecutable(new File(CHRONE_DRIVER_PATH))
                .usingAnyFreePort().build();
        try {
            // 启动驱动
            service.start();
        } catch (IOException e) {
            e.printStackTrace();
        }

        /**
         * 使用ChromeOptions优势非常多
         * 简单介绍几个如:
         *  1.可配置浏览器路径 
         *  2.可设置插件运行 
         *  3.可禁止图片加载 等等
         */
        ChromeOptions options = new ChromeOptions();
        options.setBinary(CHROME_PATH);

        driver = new ChromeDriver(service, options);

        /**
         * 两种方式都是一样的阻塞式请求 
         * driver.get(TMALL);
         */
        driver.navigate().to(TMALL);

        WebElement element = driver.findElement(By.className("对应元素名称"));

        close();

    }

    /**
     * 
     * @描述:关闭浏览器
     */
    public static void close() {
        if (driver != null) {
            driver.quit();
        }
        if (service != null) {
            service.stop();
        }
    }

}

3.最后总结

其实有selenium 有很多种用法,上面介绍的只是我个人最喜欢用的,主要有是容易控制进程及添加很多chrome的运行参数。具体参数我就不一一介绍了,给个链接你们用到了可以翻翻
http://www.51testing.com/html/30/n-3578030.html
selenium 爬虫入门还是很简单的,很多人都以为selenium 能爬淘宝但最后都失败了,原因很简单,淘宝检测到了机器行为,且检测到了chrome和chromedriver的通信。
大多数的人拿selenium都想登陆淘宝但都是失败告终,ua算法除了检测上百种的参数外,还1-2个月更新(当然这个算法更新时间是坊间流传的)。

重点

对于登陆淘宝我还是有很大把握的,毕竟现在也是具有80%+登陆进淘宝的哦,具体方法这里就先保密了哦。
有兴趣的同学可以留言哦!

你可能感兴趣的:(selenium 爬虫入门 java版(最后有彩蛋))