前面已经介绍了通过selenium来模拟对浏览器的操作,但是必须依赖图形化才能实现。如果想在命令行页面的centos上实现爬取,就需要安装Pyvirtualdisplay来模拟。
环境安装
安装Chrome浏览器
-
添加yum源 新建google-chrome.repo文件,放到对应目录下(/etc/yum.repos.d/)
[google-chrome] name=google-chrome baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64 enabled=1 gpgcheck=0 gpgkey=https://dl.google.com/linux/linux_signing_key.pub
-
更新和安装
yum update yum install -y wget gcc zlib zlib-devel Xvfb yum -y install google-chrome-stable yum groupinstall "fonts"
-
查看版本
[root@dp-tce-ap-007 ~]# google-chrome --version
Google Chrome 87.0.4280.88
-
下载驱动文件
Chrome驱动下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads
然后赋予执行权限,放到
/usr/local/share
目录下 -
注意
这里有一个坑,就是必须非root用户才能启动Chrome,不然会报错。我这这里折腾了好久。
安装selenium和Pyvirtualdisplay
这个比较简单,直接用pip安装
pip install selenium
pip install pyvirtualdisplay
使用
请参考下面代码
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
print(driver.title)
driver.quit()
display.stop()