上一篇:Java网络爬虫实操(6)git
你们好,咱们日常浏览网页常常会看到这样的效果:鼠标滚动到差很少底部的时候,才会加载新内容出来。而后一直滚就一直加载,好比外卖平台上的评价信息、社交平台上的跟贴等等。github
本篇文章介绍如何用seleinum技术模拟人对浏览器的操做chrome
Main类npm
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) {
}
}
}
复制代码
执行结果 bash
seleinum本质上是一种自动化测试工具,在爬虫技术中主要用来模拟人对浏览器的操做,理论上人经过鼠标键盘操做的全部过程,均可以用程序代码模拟出来,而后获取咱们想要的网页数据。网络
试用下来发现NetDiscovery框架对seleinum操做的支持还比较简单,我会继续关注。框架
下一篇:Java网络爬虫实操(8)ide