海量数据从哪儿来?世上本无所谓大数据的,爬的多了,自然就有数据了。
这两年网上关于docker的讨论不亚于当年的云计算,现在云计算已经落地生根了。云时代docker被寄予厚望现在也是火的一塌糊涂。
作为一名开发人员,你是否还在因为环境搭不成功而沮丧?你是否经常对于复杂的安装步骤感到反感,因而对新技术望而却步?
作为一名运维人员,你是否经常因为不同操作系统的原因导致部署失败?
那么docker就是为了解决这些痛点而生的。docker不是什么新技术,类似docker的东西早已有之,只不过docker用起来更爽,你真的应该试一试,就像指纹解锁一样。用了你就回不去了。
1.虚拟机安装ubunt16.04。(略)
2.安装docker。ubuntu14以上自带docker,直接安装即可
如果嫌每次输入docker命令都要加sudo麻烦,可以把当前用户加入docker用户组。具体参考这篇文章
3.拉docker镜像
这是这个地址 https://hub.docker.com/r/pimuzzo/selenium-python-xvfb/
ubt1606@ubt1606-virtual-machine:~$ sudo docker pull pimuzzo/selenium-python
会发现拉不下来,使用daocloud的加速器。注册账号登录后,点击使用加速器,会给你一个专属链接。 类似这样
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://c4c833cb.m.daocloud.io
查看一下/etc/default/docker文件里的确有了DOCKER_OPTS,小白温馨提示,退出vi的方法是。按一下ESC,然后输入:q
root@ubt1606-virtual-machine:/home/ubt1606# service docker restart
一定要重启docker服务。注意刚才我切换到su用户了,所以前面都没有加sudo
注意这次我换成了 index.docker.io/pimuzzo/selenium-python-xvfb。这也是daocloud页面上的。我就试了一下,这次很快就成功了。
====================================================================
4.编写第一个小demo
直接使用docker镜像上给的demo。把网址换成baidu。
在/home/ubt1606/demo下建立demo.py文件。 注意ubt1606是用户名
#!/usr/bin/env python
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
# now Firefox will run in a virtual display.
# you will not see the browser.
browser = webdriver.Firefox()
browser.get('http://www.baidu.com')
print browser.title
browser.quit()
display.stop()5.启动容器并映射数据卷
-ti: 也可以写成 -i -t,表示申请一个控制台同容器交互。it分别是interact,terminal的首字母
-v /home/ubt1606/demo:/home/something:-v表示映射数据卷。将主机的/home/ubt1606/demo文件夹映射到docker里的
/home/something文件夹。就像windows和VMWare共享文件夹一样。
pimuzzo/selenium_python_xvfb:镜像的名字,表示给哪个镜像创建容器。镜像是死的,只有容器才是活的。镜像相当于一个
windows.iso文件。而容器相当于已经启动起来的windows。
python /home/something/demo.py:运行docker里/home/something文件夹下的demo.py文件。注意路径是docker里的路径。
可以是其它路径。 比如先把一个demo2.py放在/home/ubt1606/demo文件下,然后进入到docker里。在docker里将demo2.py从
爬虫的编写其实就是用python版的webdriver来编写程序。只不过这里没有使用浏览器,而是pyvirtualdisplay。
本来webdriver和selenium都是独立的,现在整合到一块都叫selenium了。selenium官方宣称是用来做自动化测试的。
不过我看目前用的最多的还是webdriver。就是用它来写爬虫。本文只是抛砖引玉,至于webdriver api的使用比较简单,搞JavaEE的上手非常快,这里就不详细介绍了。