selenium-java web自動化測試工具抓取百度搜索結果實例


selenium-java web自動化測試工具抓取百度搜索結果實例

這種方式抓百度的搜索關鍵字結果非常容易
抓長尾關鍵詞,根據熱門關鍵詞去抓更多內容可以用
抓google,百度的這種內容容易給屏蔽,用這種就不會了


1.新建maven項目,引入selenium-java

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.8.1</version>
        </dependency>

 

2.寫代碼(因為自動化測試速度極快,每個步驟后都稍微停頓了下方便看效果)

package com.testselenium;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
    
public class AutoTest {
    
    public static void main(String[] args) throws Exception {
//        谷歌瀏覽器的驅動下載地址:https://chromedriver.storage.googleapis.com/index.html
//        最新穩定版下載地址:https://chromedriver.storage.googleapis.com/index.html?path=2.40/
        System.setProperty("webdriver.chrome.driver", "D://selenium/chromedriver.exe");
        WebDriver webDriver = new ChromeDriver();
//        火狐瀏覽器的驅動下載地址:https://github.com/mozilla/geckodriver/releases
//        System.setProperty("webdriver.gecko.driver", "D://selenium/geckodriver.exe");
//        WebDriver webDriver = new FirefoxFilter();
        
//        webDriver.manage().window().maximize();    
//        webDriver.manage().deleteAllCookies();
        // 與瀏覽器同步非常重要,必須等待瀏覽器加載完畢
        webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        
        //打開目標地址
        webDriver.get("https://www.baidu.com");
        
        Thread.sleep(1000);
        /*
//      webDriver.findElement(By.xpath("/html/body/div/div[1]/a")).click();
//      webDriver.findElement(By.cssSelector("html body div#app div.loginPage form.el-form.fromBox button.el-button.loginBtn")).click();
        webDriver.findElement(By.cssSelector(".head_wrapper > div#u1 > a:nth-child(1)")).click();
        Thread.sleep(1000);
        webDriver.findElements(By.className("a3")).forEach(x -> {
            System.out.println(x.getText());
        });
        */
        //輸入關鍵字搜索
        webDriver.findElement(By.cssSelector("input#kw")).sendKeys("java");
        webDriver.findElement(By.cssSelector("input#su")).click();
        Thread.sleep(1000);
        webDriver.findElements(By.className("t")).forEach(x -> {
            System.out.println(x.getText());
        });
        
      //暫停5秒鍾后關閉
        Thread.sleep(5000);
//        webDriver.quit();
        
        //跳轉到我的博客
        Thread.sleep(3000);
        webDriver.get("https://www.cnblogs.com/zdz807");
        
        Thread.sleep(1000);
        //打開標題為 下一頁
        webDriver.findElement(By.partialLinkText("下一頁")).click();
        
        Thread.sleep(1000);
        //移動到底部
        //((JavascriptExecutor) webDriver).executeScript("window.scrollTo(0, document.body.scrollHeight)");
        //移動到指定的坐標(相對當前的坐標移動)  
        ((JavascriptExecutor) webDriver).executeScript("window.scrollBy(0, 700)");  
        Thread.sleep(1000);
        //移動到窗口絕對位置坐標,如下移動到縱坐標1600像素位置  
        ((JavascriptExecutor) webDriver).executeScript("window.scrollTo(0, 1600)");  
        Thread.sleep(1000);
        //移動到指定元素,且元素底部和窗口底部對齊 
        ((JavascriptExecutor) webDriver).executeScript("arguments[0].scrollIntoView(false);", webDriver.findElement(By.cssSelector("#ftCon")));
        
        //暫停5秒鍾后關閉
        Thread.sleep(5000);
        webDriver.quit();
        
    }
}

 

Starting ChromeDriver 2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab) on port 38505
Only local connections are allowed.
七月 27, 2018 7:42:47 下午 org.openqa.selenium.remote.ProtocolHandshake createSession
信息: Detected dialect: OSS
java.com: Java 與您官網
Java_百度百科
Java SE Development Kit 8 - Downloads
Java 教程 | 菜鳥教程
java吧_百度貼吧
Oracle Technology Network for Java Developers | Oracle ...
Java - ImportNew
Java 運算符 | 菜鳥教程
ImportNew - 專注Java & Android 技術分享
Java SE - Downloads | Oracle Technology Network | Oracle
深圳java學習難嗎_java培訓多久能學會?
java 菜鳥也能學的Java 4個月挑戰月薪上萬
java-中國數萬程序員的選擇-官方首頁
java深圳菜鳥也能學的java 4個月挑戰月薪上萬


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM