爬虫代理IP由芝麻HTTP服务供应商提供
各位小伙伴儿的采集日常是不是被JavaScript的各种点击事件折腾的欲仙欲死啊?好不容易找到个Selenium+Chrome可以解决问题!但是另一个▄█▀█●的事实摆在面前,服务器都特么没有GUI啊··
好吧!咱们要知难而上!决不能被这个点小困难打倒·······
然而摆在面前的事实是···· 他丫的各种装不上啊!坑爹啊!
那么我来拯救你们于水火之间了!
服务器如下:
[root@spider01 ~]# hostnamectl Static hostname: spider01 Icon name: computer-vm Chassis: vm Machine ID: 1c4029c4e7fd42498e25bb75101f85b6 Boot ID: f5a67454b94b454fae3d75ef1ccab69f Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-514.6.2.el7.x86_64 Architecture: x86-64
安装Chromeium:
## 安装yum源[root@spider01 ~]# sudo yum install -y epel-release## 安装Chrome[root@spider01 ~]# yum install -y chromium
去这个地方:https://sites.google.com/a/chromium.org/chromedriver/downloads 下载ChromeDriver驱动放在/usr/bin/目录下:
完成结果如下:
[root@spider01 ~]# ll /usr/bin/ | grep chrom-rwxrwxrwx. 1 root root 7500280 11月 29 17:32 chromedriverlrwxrwxrwx. 1 root root 47 11月 30 09:35 chromium-browser -> /usr/lib64/chromium-browser/chromium-browser.sh
安装XVFB:
[root@spider01 ~]# yum install Xvfb -y[root@spider01 ~]# yum install xorg-x11-fonts* -y
新建在/usr/bin/ 一个名叫 xvfb-chromium 的文件写入以下内容:
[root@spider01 ~]# cat /usr/bin/xvfb-chromium #!/bin/bash_kill_procs() { kill -TERM $chromium wait $chromium kill -TERM $xvfb}# Setup a trap to catch SIGTERM and relay it to child processestrap _kill_procs SIGTERMXVFB_WHD=${XVFB_WHD:-1280x720x16}# Start XvfbXvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &xvfb=$!export DISPLAY=:99chromium --no-sandbox --disable-gpu$@ &chromium=$!wait $chromiumwait $xvfb
更改软连接:
## 更改Chrome启动的软连接[root@spider01 ~]# ln -s /usr/lib64/chromium-browser/chromium-browser.sh /usr/bin/chromium[root@spider01 ~]# rm -rf /usr/bin/chromium-browser[root@spider01 ~]# ln -s /usr/bin/xvfb-chromium /usr/bin/chromium-browser[root@spider01 ~]# ln -s /usr/bin/xvfb-chromium /usr/bin/google-chrome[root@spider01 ~]# ll /usr/bin/ | grep chrom*-rwxrwxrwx. 1 root root 7500280 11月 29 17:32 chromedriverlrwxrwxrwx. 1 root root 47 11月 30 09:47 chromium -> /usr/lib64/chromium-browser/chromium-browser.shlrwxrwxrwx. 1 root root 22 11月 30 09:48 chromium-browser -> /usr/bin/xvfb-chromium-rwxr-xr-x. 1 root root 73848 12月 7 2016 chronyclrwxrwxrwx. 1 root root 22 11月 30 09:48 google-chrome -> /usr/bin/xvfb-chromium-rwxrwxrwx. 1 root root 387 11月 29 18:16 xvfb-chromium
来瞅瞅能不能用哦:
>>> from selenium import webdriver>>> driver = webdriver.Chrome()>>> driver.get("http://www.baidu.com")>>> driver.find_element_by_xpath("./*//input[@id='kw']").send_keys("哎哟卧槽")>>> driver.find_element_by_xpath("./*//input[@id='su']").click()>>> driver.page_source
No problem!!!!
好了部署完了!当然Docker这么火贼适合懒人了!来来 看这儿 Docker版的 妥妥滴!
docker pull thsheep/chromium-xvfb-py3:master
做好了Python3.6.3和Chrome集成
需要自己使用Dockerfile来重新打包安装你需要的Python包。