测试自动化_博客已迁移爬虫专题自动化测试

Java网络爬虫实操(7)

2018-03-05  本文已影响67人  风行者1024

上一篇:Java网络爬虫实操(6)

大家好,我们平常浏览网页经常会看到这样的效果:鼠标滚动到差不多底部的时候,才会加载新内容出来。然后一直滚就一直加载,比如外卖平台上的评价信息、社交平台上的跟贴等等。

本篇文章介绍如何用seleinum技术模拟人对浏览器的操作

1) 准备工作

2) 程序实现逻辑

3) 写代码

Main类

package com.cv4j.netdiscovery.example;

import com.cv4j.netdiscovery.core.Spider;
import com.cv4j.netdiscovery.selenium.Browser;
import com.cv4j.netdiscovery.selenium.downloader.SeleniumDownloader;
import org.openqa.selenium.WebDriver;

public class TestSelenium {

    public static void main(String[] args) {
        //设置浏览器的驱动程序
        WebDriver driver = Browser.Chrome.init("example/chromedriver.exe");
        //创建downloader类和action
        ScrollAction scrollAction = new ScrollAction();
        SeleniumDownloader seleniumDownloader = new SeleniumDownloader(driver, scrollAction);
        //设置并启动爬虫
        Spider.create()
                .name("testseleinum")
                .url("https://www.ele.me/shop/1919756/rate")
                .downloader(seleniumDownloader)
                .run();
    }
}

SeleniumAction类

package com.cv4j.netdiscovery.example;

import com.cv4j.netdiscovery.selenium.SeleniumAction;
import com.cv4j.netdiscovery.selenium.Utils;
import org.openqa.selenium.WebDriver;

public class ScrollAction implements SeleniumAction {

    @Override
    public void execute(WebDriver driver) {
        try {
            //最大化
            driver.manage().window().maximize();
            //停顿2秒
            Thread.sleep(2000);
            //往下滚动200px
            Utils.scroll(driver, 200);
            //对当前网页截屏
            Utils.taskScreenShot(driver, "D:\\work\\test.png");
        } catch(InterruptedException e) {
        }
    }
}

执行结果

保存到本地的截屏图片

4) 总结

seleinum本质上是一种自动化测试工具,在爬虫技术中主要用来模拟人对浏览器的操作,理论上人通过鼠标键盘操作的所有过程,都可以用程序代码模拟出来,然后获取我们想要的网页数据。

试用下来发现NetDiscovery框架对seleinum操作的支持还比较简单,我会继续关注。

下一篇:Java网络爬虫实操(8)

上一篇下一篇

猜你喜欢

热点阅读