IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JAVA+Selenium+Chrome+Chromedriver 模拟浏览器 -> 正文阅读

[Java知识库]JAVA+Selenium+Chrome+Chromedriver 模拟浏览器

linux 的环境准备

安装 google-chrome
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
下载 Chromedriver
地址:http://npm.taobao.org/mirrors/chromedriver/ (根据google-chrome -version找对应版本)
下载后放到根目录,注意要给 chromedriver 可执行权限:chmod 777 /chromedriver

windows 的环境准备

安装 google-chrome 浏览器
下载 Chromedriver
地址:http://npm.taobao.org/mirrors/chromedriver/ (根据google-chrome -version找对应版本)

JAVA Maven

maven 导入包
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>2.33.0</version>
</dependency>

工具类例子

package c.o.v;

import org.apache.commons.lang3.StringUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class YXMUtil {

    public static void main(String[] args) {
        get("https://mall.q-gp.com/share/product?skuNo=366936136878081");
    }

    public static Map<String, String> get(String url) {
        // 参数配置
        System.setProperty("webdriver.chrome.driver", "/chromedriver.exe");
        WebDriver driver;
        ChromeOptions option = new ChromeOptions();
        option.addArguments("headless"); // 无界面参数
        option.addArguments("no-sandbox"); // 禁用沙盒
        // 通过ChromeOptions的setExperimentalOption方法,传下面两个参数来禁止掉谷歌受自动化控制的信息栏
        option.setExperimentalOptions("useAutomationExtension", false);
        option.setExperimentalOptions("excludeSwitches", Collections.singletonList("enable-automation"));
        driver = new ChromeDriver(option);
        driver.get(url);
        String title = "";
        String num = "";
        String img = "";
        long time = System.currentTimeMillis();
        while (StringUtils.isEmpty(img) || StringUtils.isEmpty(title) || StringUtils.isEmpty(num)) {
            img = driver.findElement(By.className("cr-image--img")).getAttribute("src");
            title = driver.findElement(By.className("title")).getText();
            num = driver.findElement(By.className("num")).getText();
            if (System.currentTimeMillis() - time > 5000) {
                System.out.println("获取超时,已结束");
                driver.quit();
                return null;
            }
            try {
                Thread.sleep(500);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        System.out.println("标题:" + title);
        System.out.println("价格:" + num);
        System.out.println("图片:" + img);
        driver.quit();
        Map<String, String> map = new HashMap();
        map.put("title", title);
        map.put("num", num);
        map.put("img", img);
        return map;
    }
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-23 10:43:02  更:2022-04-23 10:45:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:23:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码