如果你不需要在linux docker 上运行爬虫,就不需要看这篇文档了,直接拉到最下面点击第二个 参考文档 即可。
问:selenium+WebDriver+chrome 是如何实现爬虫的或者自动化测试的。
答:selenium WebDriver 可以模拟页面上的操作,仿佛一个测试人员 正在拿着鼠标在页面上点来点去。并且可以获取页面上的元素,元素的属性值。
创建一个WebDriver对象,就是打开一个会话。
第一步:拉取镜像
1.拉取镜像
1.1官方镜像
sudo docker run -d -p 4444:4444 --shm-size=2g selenium/standalone-chrome
1.2这个官方镜像是国外的,拉取不下来,使用阿里云加速器
使用阿里云加速器其实要的就是红框3中的json,赋值红框3中的json,复制红框2中的地址,替换掉json里面的链接,得到新的json。(这个链接每个人都不一样)
{
"registry-mirrors": ["https://********"]
}
然后把这个json保存到 你linux机器上 /etc/docker/daemon.json 这个文件里,没有的话就创建这个文件。
完事之后,再次执行上面的命令就可以成功了
运行成功之后,查看容器,会看到已经容器已经运行了。
sudo docker ps
在你的电脑,不是linux,访问以下地址
http://<你的linux的ip地址>:4444/
如果可以看到下面的页面,就说明容器运行成功
sessions:代表创建了几个会话。
max.concurrentcy: 代表 你这个容器同时可以处理几个对话。
图中这种情况只能 同时模拟一个网页,也就是同时只能处理一个会话。
代码部分
依赖
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>