selenium+chromedriver在服务器运行的详细教程

 更新时间:2020年03月31日 15:05:39   作者:woodcol  
这篇文章主要介绍了selenium+chromedriver在服务器运行的详细方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1.前言

想使用selenium从网站上抓数据,但有时候使用phantomjs会出错。chrome现在也有无界面运行模式了,以后就可以不用phantomjs了。

但在服务器安装chrome时出现了一些错误,这里总结一下整个安装过程

2.ubuntu上安装chrome

# Install Google Chrome
# https://askubuntu.com/questions/79280/how-to-install-chrome-browser-properly-via-command-line
sudo apt-get install libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb # Might show "errors", fixed by next line
sudo apt-get install -f

这时应该已经安装好了,用下边的命行运行测试一下:

google-chrome --headless --remote-debugging-port=9222 https://chromium.org --disable-gpu

这里是使用headless模式进行远程调试,ubuntu上大多没有gpu,所以–disable-gpu以免报错。
之后可以再打开一个ssh连接到服务器,使用命令行访问服务器的本地的9222端口:

curl http://localhost:9222

如果安装好了,会看到调试信息。但我这里会报一个错误,下边是错误的解决办法。

1)可能的错误解决方法

运行完上边的命令可能会报一个不能在root下运行chrome的错误。这个时候使用下边方设置一下chrome

1.找到google-chrome文件

我的位置位于/opt/google/chrome/

2.用vi打开google-chrome文件

vi /opt/google/chrome/google-chrome

在文件中找到

exec -a "$0" "$HERE/chrome" "$@"

3.在后面添加 –user-data-dir –no-sandbox即可,整条shell命令就是

exec -a "$0" "$HERE/chrome" "$@" --user-data-dir --no-sandbox

4.再重新打开google-chrome即可正常访问!

3.安装chrome驱动chromedriver

下载chromedriver

chromedriver提供了操作chrome的api,是selenium控制chrome的桥梁。

chromedriver最好安装最新版的,记的我一开始安装的不是最新版的,会报一个错。用最新版的chromedriver就没有问题,最新版的可以在下边地址找到
https://sites.google.com/a/chromium.org/chromedriver/downloads

我写这个文章时最新版是2.37

wget https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip
unzip chromedriver_linux64.zip

到这里服务器端的无界面版chrome就安装好了。

4.无界面版chrome使用方法

from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("user-agent='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'")
wd = webdriver.Chrome(chrome_options=chrome_options,executable_path='/home/chrome/chromedriver')

wd.get("https://www.163.com")

content = wd.page_source.encode('utf-8')
print content

wd.quit()

这里chrome_options中的第三项设置参数,使用这个设置可以避免网站检测到你使用的是无界模式进行反抓取。

下边另外的两项设置,不进行设置时在桌面版linux系统,或者mac系统上会打开有界面的chrome.调试时可以注释掉下边两行使用有界面版chrome来调试程序。

chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

5.参考

https://jiayi.space/post/zai-ubuntufu-wu-qi-shang-shi-yong-chrome-headless
https://blog.csdn.net/u013703963/article/details/71083802

总结

到此这篇关于selenium+chromedriver在服务器运行的文章就介绍到这了,更多相关selenium+chromedriver在服务器运行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SVN服务器搭建图文教程

    SVN服务器搭建图文教程

    这篇文章主要为大家详细介绍了SVN服务器搭建的图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • ipvs模块的管理工具ipvsadm介绍

    ipvs模块的管理工具ipvsadm介绍

    对ipvsadm 的命令参考,并根据自己使用的经验,进行了一个简单的翻译,希望对ipvsadm 的使用者有一定的帮助
    2015-01-01
  • vscode 远程服务器 上传至 github的操作步骤

    vscode 远程服务器 上传至 github的操作步骤

    这篇文章主要介绍了vscode 远程服务器 上传至 github的操作步骤,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-12-12
  • lamp主机是什么 vps如何配置lamp主机

    lamp主机是什么 vps如何配置lamp主机

    这篇文章主要介绍了lamp主机是什么 vps如何配置lamp主机,需要的朋友可以参考下
    2015-10-10
  • WampServer运行呈橙色该怎么解决

    WampServer运行呈橙色该怎么解决

    这篇文章主要给大家介绍了关于WampServer运行呈橙色该怎么解决的相关资料,wampserver一直是橙色的,表示服务没有完全开启,可能是Apache服务器没有启动,文中给出了详细的解决办法,需要的朋友可以参考下
    2023-09-09
  • 网站数据自动备份方法

    网站数据自动备份方法

    本文是根据作者自己多年的维护经验,来和大家分享下网站数据自动备份的一些经验。
    2010-04-04
  • 教你如何卸载无法开机(蓝屏)的exchange服务器(灾难处理)

    教你如何卸载无法开机(蓝屏)的exchange服务器(灾难处理)

    这篇文章主要介绍如何卸载无法开机(蓝屏)的exchange服务器(灾难处理),本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • 基于 ZooKeeper 搭建 Hadoop 高可用集群 的教程图解

    基于 ZooKeeper 搭建 Hadoop 高可用集群 的教程图解

    Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多,所以它的实现也更加复杂,下面给大家详细介绍,感兴趣的一起看看吧
    2019-06-06
  • 阿里云主机不能用IP访问网站的解决方法(配置安全组规则搞定)

    阿里云主机不能用IP访问网站的解决方法(配置安全组规则搞定)

    刚买了一台阿里云主机,迫不待及的试试速度,怎知网站访问不了,用IP或绑定域名都无法访问,后来提交工单才知道,需要配置安全组规则才行。针对同样像我一样的新手,本文就介绍一下如何在开通阿里云主机后配置安全组规则,让网站能够外网访问,需要的朋友可以参考下
    2020-07-07
  • 502 bad gateway是什么意思 502 bad gateway错误解决方法

    502 bad gateway是什么意思 502 bad gateway错误解决方法

    简单来说 502 是报错类型代码 bad getway 错误的网关,连接超时 我们向服务器器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错
    2013-03-03

最新评论