芝麻HTTP:在无GUI的CentOS上使用Selenium+Chrom…

2018-06-18 00:50:32来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

各位小伙伴儿的采集日常是不是被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 chromedriver
lrwxrwxrwx. 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 processes
trap _kill_procs SIGTERM
 
XVFB_WHD=${XVFB_WHD:-1280x720x16}
 
# Start Xvfb
Xvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &
xvfb=$!
 
export DISPLAY=:99
 
chromium --no-sandbox --disable-gpu$@ &
chromium=$!
 
wait $chromium
wait $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 chromedriver
lrwxrwxrwx. 1 root root        47 11月 30 09:47 chromium -> /usr/lib64/chromium-browser/chromium-browser.sh
lrwxrwxrwx. 1 root root        22 11月 30 09:48 chromium-browser -> /usr/bin/xvfb-chromium
-rwxr-xr-x. 1 root root     73848 12月  7 2016 chronyc
lrwxrwxrwx. 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

?

好了部署完了!当然Docker这么火贼适合懒人了!来来 看这儿 Docker版的 妥妥滴!

?docker pull thsheep/chromium-xvfb-py3:master

做好了Python3.6.3和Chrome集成

需要自己使用Dockerfile来重新打包安装你需要的Python包。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python学习/复习神器-->各种方法/技巧在哪用和典型例子(一

下一篇:Jupyter Notebook的魔法