小白學爬蟲-在無GUI的CentOS上使用Selenium+Chrome

爬蟲代理IP由芝麻HTTP服務供應商提供


各位小夥伴兒的採集平常是否是被JavaScript的各類點擊事件折騰的欲仙欲死啊?好不容易找到個Selenium+Chrome能夠解決問題!python

可是另外一個▄█▀█●的事實擺在面前,服務器都特麼沒有GUI啊··web

好吧!我們要知難而上!決不能被這個點小困難打倒·······chrome

然而擺在面前的事實是····  他丫的各類裝不上啊!坑爹啊!docker

那麼我來拯救大家於水火之間了!centos

服務器以下:bash

[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/目錄下:tcp

完成結果以下:ide

[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

No problem!!!!

好了部署完了!固然Docker這麼火賊適合懶人了!來來 看這兒 Docker版的 妥妥滴!

docker pull thsheep/chromium-xvfb-py3:master

作好了Python3.6.3和Chrome集成

須要本身使用Dockerfile來從新打包安裝你須要的Python包。

順便一提!!!!這個玩意兒從事Web測試工做的小夥伴能夠用!!!!!!!!

相關文章
相關標籤/搜索