selenium 爬虫 点击 更改按钮 获取数据

import java.util.List;
import java.util.Random;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class YidianzixunSelenium {

    public static void main(String[] args) throws Exception{

        //等待数据加载的时间
        //为了防止服务器封锁,这里的时间要模拟人的动作,随机太短
        long waitLoadBaseTime = 3000;
        int waitLoadRandomTime = 3000;
        Random random = new Random(System.currentTimeMillis());

 

        //火狐浏览器
        System.getProperties().setProperty("webdriver.firefox.bin", "E:\\software\\firefox\\firefox.exe");
        WebDriver driver = new FirefoxDriver();

        //要抓取的网页
        driver.get("http://www.yidianzixun.com/home?page=channel&keyword=%E8%8A%B1%E8%8C%B6");

 
        //等待页面动态加载完毕
        Thread.sleep(waitLoadBaseTime+random.nextInt(waitLoadRandomTime));

        //要加载多少页数据
        int pages=5;
        for(int i=0; i<pages; i++) {
            //滚动加载下一页
            driver.findElement(By.className("show-more")).click();
            //等待页面动态加载完毕
            Thread.sleep(waitLoadBaseTime+random.nextInt(waitLoadRandomTime));
        }

        //输出内容
        //找到标题元素
        List<WebElement> elements = driver.findElements(By.className("article"));
        int j=1;
        for(int i=0;i<elements.size();i++) {
            try {
                WebElement element = elements.get(i).findElement(By.tagName("h3"));
                
                //输出标题             
                System.out.println((j++) + "的标题:" + element.getText());
            }catch (Exception e){
                System.out.println("ignore "+elements.get(i).getText()+" because "+e.getMessage());
            }
        }

        //关闭浏览器
        driver.close();

    }

}


你可能感兴趣的:(selenium)