美文网首页
SpringBoot集成selenium

SpringBoot集成selenium

作者: 风一样的存在 | 来源:发表于2019-05-08 20:10 被阅读0次

    由于公司做的Facebook爬虫涉及到模拟用户操作,selenium和webdriver操作。因为做的海外爬虫,一天的任务量也就在2000左右,但是最近突然告警,60秒堆积任务量超过10个没有处理,满满的20个。当时想着每个机器5个线程在跑,但是都用webdriver,每个机器不能超过7个,那就加机器了。但是没想到下面的路还是有很多坑。
    在linux下没有前端页面展示,不能进行交互操作,更别提自动化操作了,必须安装xvfb虚拟化。

yum install Xvfb
//或者
apt-get install xvfb

然后启动xvfb

Xvfb :1 -screen 0 2560x1600x24&

在代码里使用:

String osName = System.getProperty("os.name");
if (osName.contains("Linux")) {
    //lmportal.xvfb.id必须和开启的xvfb对应
    String xPort = System.getProperty("lmportal.xvfb.id", ":1");
    ChromeDriverService service = new ChromeDriverService.Builder().usingAnyFreePort().withEnvironment(ImmutableMap.of("DISPLAY", xPort)).build();
    webDriver = new ChromeDriver(service, capabilities);
}
由于是服务器镜像打包过来的,肯定安装步骤是省掉的。但是项目一直说什么地址占用,最后发现我项目指定的端口和xvfb默认的6001冲突了,换了一个端口正常运行了。 端口冲突

但是另一个机器上的却是正常的很奇怪!!!

相关文章

网友评论

      本文标题:SpringBoot集成selenium

      本文链接:https://www.haomeiwen.com/subject/wpbhgqtx.html