各位小伙伴儿的采集日常是不是被JavaScript的各种点击事件折腾的欲仙欲死啊?好不容易找到个Selenium+Chrome可以解决问题!
但是另一个▄█▀█●的事实摆在面前,服务器都特么没有GUI啊··
好吧!咱们要知难而上!决不能被这个点小困难打倒·······
然而摆在面前的事实是···· 他丫的各种装不上啊!坑爹啊!
那么我来拯救你们于水火之间了!
服务器如下:
1
2
3
4
5
6
7
8
9
10
11
|
[
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:
1
2
3
4
|
## 安装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/目录下:
完成结果如下:
1
2
3
|
[
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:
1
2
|
[
root
@
spider01
~
]
# yum install Xvfb -y
[
root
@
spider01
~
]
# yum install xorg-x11-fonts* -y
|
新建在/usr/bin/ 一个名叫 xvfb-chromium 的文件写入以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
[
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
|
更改软连接:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
## 更改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
|
来瞅瞅能不能用哦:
1
2
3
4
5
6
|
>>>
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版的 妥妥滴!
1
|
docker
pull
thsheep
/
chromium
-
xvfb
-
py3
:
master
|
做好了Python3.6.3和Chrome集成
需要自己使用Dockerfile来重新打包安装你需要的Python包。
顺便一提!!!!这个玩意儿从事Web测试工作的小伙伴可以用!!!!!!!!
转载请注明: 静觅 » 小白学爬虫-在无GUI的CentOS上使用Selenium+Chrome