yann学长的运维开发指南18

in #devops8 years ago

说明
目前的进度及后续的课程

介绍
具体内容如下:

无头浏览器的区分
早期无头浏览器的部署
新的无头浏览器
无头浏览器的区分
花了两天时间,终于把无头浏览器梳理清楚了:
早期的无头浏览器是指PhantomJS, 而当时有些人希望使用某种特别的方式使用chrome或firefox,然后他们成功了,把这种方式也称为headless
后来chrome和firefox正式推出了headless的模式,之前使用特殊方式实现的headless理论上也可以废除了,当然也有人说保留下来应对不知道headless模式浏览的网站,但我目前还没遇到,有谁遇到了,请给我留言.

早期无头浏览器的部署
操作如下:

yum install xorg

x11

server

Xvfb
bzip gtk3
pip install pyvirtualdisplay
pip install selenium

安装火狐

cd
/
usr
/
local
wget https
://
ftp
.
mozilla
.
org
/
pub
/
firefox
/
releases
/
56.0
.
2
/
linux

x86_64
/
en

US
/
firefox

56.0
.
2.tar
.
bz2
tar xjvf firefox

56.0
.
2.tar
.
bz2
ln

s
/
usr
/
local
/
firefox
/
firefox
/
usr
/
bin
/
firefox
#安装驱动
cd
/
usr
/
local
/
bin
wget https
://
github
.
com
/
mozilla
/
geckodriver
/
releases
/
download
/
v0
.
19.1
/
geckodriver

v0
.
19.1

linux64
.
tar
.
gz
tar xvzf geckodriver
-*.
tar
.
gz
ln

s
/
usr
/
local
/
geckodriver
/
usr
/
bin
/
geckodriver

启动虚拟桌面环境,保持后台运行

Xvfb

:
1

screen
0

1024x768x24

&

配置环境变量

export DISPLAY
=:
1
touch 一个叫firefox.py的文件测试一下:

from
selenium
import
webdriver
b
=
webdriver
.
Firefox
()
b
.
get
(
'http://www.baidu.com'
)
print
(
b
.
page_source
)
b
.
quit
()
网页读出来了,但是真心慢啊.

新的无头浏览器
下面构造相关环境:

cd
/
etc
/
yum
.
repos
.
d
/
cat

google

chrome
.
repo
<<
EOF
[
google

chrome
]
name
=
google

chrome
baseurl
=
http
:
//dl.google.com/linux/chrome/rpm/stable/$basearch
enabled
=
1
gpgcheck
=
1
gpgkey
=
https
:
//dl-ssl.google.com/linux/linux_signing_key.pub
EOF
sudo yum install google

chrome

stable

nogpgcheck
su

yann
cat firefox
.
py
from
selenium
import
webdriver
chrome_options
=
webdriver
.
ChromeOptions
()
chrome_options
.
add_argument
(
'--headless'
)
chrome_options
.
add_argument
(
'--disable-gpu'
)
driver
=
webdriver
.
Chrome
(
chrome_options
=
chrome_options
,
executable_path
=
'/home/yann/chromedriver'
)
driver
.
get
(
'http://localhost:8000'
)
assert

'Django'

in
driver
.
title
print
driver
.
current_url
运行成功, 说明新版chrome的headless功能是不需要Xvfb来虚拟环境的, 无头本身就可以支持base环境渲染.

预告
短短一个Django开篇居然讲了6节, 我还真是磨啊, 不过后面应该可以上轨道了: 环境也部署好了, 框架也搭起来了,希望可以顺利的做点自己需要的东西出来,敬请期待 && 谢谢观赏.

Sort:  

请扫描二维码看微信上的版本,这个不知道为什么乱掉了,而且不能编辑,十分抱歉.

请扫描二维码看微信上的版本,这个不知道为什么乱掉了,而且不能编辑,十分抱歉.