selenium+java+chrome百度翻译

背景

以前爬取过百度翻译的api,比较喜欢百度翻译的重点词汇等一些功能,而百度的官方api没(mei)提(you)供(qian)这系列功能,所以只能自己去爬取下啰,但是用了一段时间百度改了接口的签名方式等,中间研究了下selenium获取翻译内容,遂记录下。

步骤

暂时只测试了chrome版本的,听说firefox浏览器与selenium会有冲突。

1.下载chromedriver并放到浏览器安装目录下面(须下载与chrome浏览器对应的版本)

先找到浏览器的版本,我的为68.0.3440.106

查看与浏览器相对应的chromedriver版本,chromedriver的定义请自行脑补

找到chromedriver版本之后进http://npm.taobao.org/mirrors/chromedriver/ 找到相应的版本下载下来

下载下来之后将chromedriver.exe文件放到chrome的安装目录(我的目录是C:\Program Files (x86)\Google\Chrome\Application)

2.下载selenium对应的java jar包,我的是maven项目,所以直接去maven仓库搜索selenium-chrome-driver即可,不是maven项目请自行下载jar包

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-chrome-driver</artifactId>
    <version>3.8.1</version>
</dependency>

3.coding

@Test
    public void translate(){
        //指定chromedriver.exe位置
        System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
        //打开谷歌浏览器
        ChromeOptions chromeOptions = new ChromeOptions();
        //设置为 headless 模式 (必须)
        chromeOptions.addArguments("--headless");
        //设置浏览器窗口打开大小  (非必须)
        chromeOptions.addArguments("--window-size=1920,1080");
        WebDriver driver=new ChromeDriver();//打开chrome
        driver.get("https://fanyi.baidu.com/translate");//打开百度翻译
        driver.findElement(By.id("baidu_translate_input")).sendKeys("Hello Java");//输入需要翻译的内容
        driver.findElement(By.id("translate-button")).click();//点击搜索按钮
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);//等页面加载,10秒内不加载成功即报超时,TimeUnit.SECONDS 一般用秒作为单位
        String aResult=driver.findElement(By.xpath(".//*[@id=\"main-outer\"]/div/div/div[1]/div[2]/div[1]/div[2]/div/div/div[1]/p[2]/span")).getText();//取翻译结果
        System.out.println(aResult);
        //关闭浏览器
        /**
         * dr.quit()和dr.close()都可以退出浏览器,简单的说一下两者的区别:第一个close,
         * 如果打开了多个页面是关不干净的,它只关闭当前的一个页面。第二个quit,
         * 是退出了所有Webdriver所有的窗口,退的非常干净,所以推荐使用quit最为一个case退出的方法。
         */
        //driver.quit();
    }

4.最终效果

 

注意

1.chromedriver必须和浏览器对应的版本保持一致

2.下载下来的chromedriver最好放在浏览器安装目录下,编码时最好指定路径

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值