您现在的位置是:首页 > 技术人生 > 后端技术后端技术
selenium java操作页面常用方法示例-java爬虫之selenium(二)
 高晓波2020-10-13【后端技术】人已围观
高晓波2020-10-13【后端技术】人已围观
简介selenium的使用还是比较简单的,能达到类似于jQuery一样操作页面。
为什么选择selenium?
比较成熟一些的网站都有很多反爬措施,参数加密是常见的反爬措施中的一种,使用selenium相当于浏览器直接操作,不用花费大量时间精力去解密js。
selenium的使用还是比较简单的,能达到类似于jQuery一样操作页面。
为什么选择selenium?
比较成熟一些的网站都有很多反爬措施,参数加密是常见的反爬措施中的一种,使用selenium相当于浏览器直接操作,不用花费大量时间精力去解密js。
1、引入selenium jar包
 
2、创建chrome driver对象,并进行一些参数设置
 
3、chrome driver对象使用
 
        
        
    为什么选择selenium?
比较成熟一些的网站都有很多反爬措施,参数加密是常见的反爬措施中的一种,使用selenium相当于浏览器直接操作,不用花费大量时间精力去解密js。
1、引入selenium jar包
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<version>3.141.59</version>
		</dependency>
2、创建chrome driver对象,并进行一些参数设置
private WebDriver createWebDriver(){
        //新增一个预操作对象
        ChromeOptions options =new ChromeOptions();
        //删除提示栏
        options.addArguments("disable-infobars");
        // 设置后台静默模式启动浏览器
        options.addArguments("--headless");
        options.addArguments("--no-sandbox");
        options.addArguments("--disable-gpu");
        options.addArguments("--disable-dev-shm-usage");
        //无痕模式
        options.addArguments("--incognito");
        //使用代理
        options.addArguments("–proxy-server=http://ip:端口");
        //设置header,以user-agent为例
        options.addArguments("user-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36");
        Map<String, Object> prefs = new HashMap<String, Object>();
        //禁止弹出通知
        prefs.put("profile.default_content_setting_values.notifications", 2);
        //禁止加载图片
        prefs.put("profile.managed_default_content_settings.images", 2);
        //禁止加载css
        prefs.put("permissions.default.stylesheet", 2);
        options.setExperimentalOption("prefs", prefs);
        System.setProperty("webdriver.chrome.driver", "/usr/local/chromedriver");
        WebDriver webDriver = new ChromeDriver(options);
        //全屏
        webDriver.manage().window().maximize();
        //删除所有cookie
        webDriver.manage().deleteAllCookies();
        //设置全局等待时间:等待10秒如果某元素还未出现,操作时该元素会报错
        webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        return webDriver;
    }
3、chrome driver对象使用
//添加cookie
Cookie cookie = new Cookie("name", "value");
webDriver.manage().addCookie(cookie);
//打开页面
webDriver.get("https://www.baidu.com");
//通过css选择器获取页面元素,除此之外还有id选择器、标签选择器,xpath选择器等等,此处不一一列举
WebElement pageList = webDriver.findElement(By.cssSelector("div.st-pagelink"));
//点击
pageList.click();
//获取元素内部html代码
String html = pageList.getAttribute("innerHTML");
//执行js代码
String jsResult = ((JavascriptExecutor) webDriver).executeScript("return " + script).toString();
很赞哦! ()
随机图文
  - Springboot集成quartz定时任务可视化配置 使用quartz定时任务已经有一段时间了,今天记录一下Springboot 2.x集成Quartz。
  - maven安装jar到本地仓库 JAVA做淘宝客程序开发的时候,我用的是maven管理依赖jar包。 如何将阿里妈妈下载的jar包以及source jar安装到maven本地仓库呢?
  - mybatis plus生成实体entity没有id 总是写很多重复的增删改查毫无意义,浪费生命,于是乎准备弄一个增删改查代码生成工具。网上查了一下mybatis plus挺好的,于是乎打开官网 Quick Start!按照官网的演示栗子:// 演示
  - 【转】GPT 应用开发和思考 在过去几个月的时间中,我们似乎正处于人工智能的革命中。除了大多数人了解的 OpenAI ChatGPT 之外,许多非常新颖、有趣、实用的 AI 应用也是层出不穷,并且在使用这些应用时时,笔者也确确实实的感受到了生产力的提高。

 微信收款码
微信收款码 支付宝收款码
支付宝收款码