Ubuntu下的Selenium爬虫的配置
在服务器Ubuntu系统上跑爬虫,爬虫是基于Selenium写的,遇到好几个问题,现在这里记录一下。
1. 安装环境
阿里云,Ubuntu16.04,因为没有界面,所以远程命令行操作。爬虫是基于Selenium写的,需要安装Chrome浏览器和Chromedriver。
1.1 安装Chrome和Chromedriver
Chrome直接去官网下载,安装稳定版,https://www.ubuntuupdates.org/ppa/google_chrome?dist=stable,下载deb格式的安装包,上传到服务器,用命令行安装:
1 sudo dpkg -i google-chrome*.deb2 sudo apt-get install -f
安装完成使用命令查看Chrome的版本,若出现版本号说明安装成功。
1 google-chrome --version
Chromedriver去淘宝镜像下载,http://npm.taobao.org/mirrors/chromedriver/,下载时选择与Chrome版本对应的Chromedriver,点开里面的notes.txt可以看到对应关系。下载后上传到服务器,或者 wget -N链接下载。下载后解压,若没有安装解压软件,使用下面的命令安装。
1 sudo apt-get install unzip
将解压后的文件移动到/usr/bin/文件下,添加执行权限。
1 sudo mv chromedriver /usr/bin/2 sudo chmod +x /usr/bin/chromedriver
1.2 安装Anaconda3
去清华源下载Anaconda3,https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,下载后上传到服务器,使用命令安装,此处要注意把Anaconda安装为Linux下多用户共享的软件,避免多个用户重复安装。
1 sudo bash Anaconda3-5.2.0-Linux-x86_64.sh
安装时有一个步骤是要求你输入安装路径,Linux下多用户共享的软件是在/usr/local目录下,所以填写这个目录。安装最后会提示问你要不要把Anaconda添加到系统路径,选Yes,然后更新root用户的设置(这样做还会避免另一个大坑,下面会讲到)。关闭窗口后生效。
1 sudo source ~/.bashrc
若已经为root用户安装了Anaconda,建议卸载后重新安装。卸载方法是删除原来的/usr/local/bin下Anaconda的安装目录,编辑root用户的设置文件:
1 sudo vim ~/.bashrc
把里面原来添加的Anaconda路径设置删除,然后更新一下设置。
1 sudo source ~/.bashrc
在命令行里输入python,出现的python版本是3.6而不是系统自带的2.7或3.5,说明安装成功。
1.3 安装Selenium
在root用户下安装:
1 pip install selenium
打开python,输入以下代码,不报错说明安装成功。
1 from selenium import webdriver
安装到这里就能跑代码了嘛?不,还不行,哈哈哈。
2. 修改配置来执行代码
Selenium跑不起来,报错。就不截图了,只是说不能正常启动。经过我的搜索,有两个问题会导致这个错误:
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally (Driver info: chromedriver=........
1. 当前执行代码的用户是root用户,而root用户打开Chrome需要在沙盒里运行,webdriver里默认关闭了沙盒,所以报错。两种解决方法,为Ubuntu添加一个新用户或者修改代码里的设置。我只实验了第一种,添加了一个新用户,第二种没试。因为root用户只用来管理,新用户用来跑代码,分开不容易出错。
Ubuntu里添加新用户的方法是在root用户下执行:
1 sudo adduser username
会让你设置密码。companyname,phone之类的直接enter跳过就行。
2. 没有界面,所以装一个虚拟界面才行。
在root用户下安装pyvirtualdisplay:
1 pip install pyvirtualdisplay
然后在代码里添加以下几行,进行测试:
1 from selenium import webdriver2 from pyvirtualdisplay import Display3 4 if __name__ == '__main__':5 display = Display(visible=0, size=(800, 800))6 display.start()7 browser = webdriver.Chrome()8 browser.get('http://www.baidu.com')9 print (browser.title)
大功告成。第一篇博客,嘻嘻。 如果还有问题那就是第一步安装的Chrome和Chromedriver版本不匹配导致的,仔细检查一下。
转载于:https://www.cnblogs.com/baijing1/p/9751399.html
Ubuntu下的Selenium爬虫的配置相关推荐
- 如何在无显示器的ubuntu下跑selenium
2019独角兽企业重金招聘Python工程师标准>>> 如何在无显示器的ubuntu下跑selenium 博客分类: java Selenium是一个web自动化测试框架.用它可以实 ...
- Ubuntu下利用JDK的Keytool配置Tomcat7.0的SSL协议
Ubuntu下利用JDK的Keytool配置Tomcat7.0的SSL协议: 1.用JDK自带的Keytool生成服务器证书: 1)打开终端控制台,转向tomcat主目录,执行生成keystore ...
- Ubuntu下mongodb的安装与配置
MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便.这里介绍在Ubuntu下mongodb的安装与配置. 1.下载 mongodb可以在官网上下载,地址,选择Ubun ...
- Ubuntu下域名服务器bind9 安装与配置
Ubuntu下域名服务器bind9 安装与配置 //更新 ubuntu :sudo apt update //1.安装: //1.2安装bind9 //sudo apt-get install bin ...
- vscode在ubuntu下安装插件,同时配置python虚拟环境、ctrl+鼠标滚轮放大代码窗口设置
linux下vs code 两大问题: 1.无法在code中切换虚拟环境 2.文件夹有时候会莫名其妙打不开,似乎和文件夹的命名有关系. 已弃坑,不再使用. ---------------------- ...
- linux apktool使用教程,简单介绍ubuntu下apktool的使用与配置
apktool 使用 1.解包(反编译):apktool d -f xxx.apk -o xxx 2.二次打包: apktool b xxx -o xxx.apk 3.签名 java -jar sig ...
- Ubuntu 下 LaTeX 图形环境的配置——使用Kile
Ubuntu下LaTeX 的配置 利用新立得软件包管理器查看,我下载的软件有: 在TeX创作里面查看,安装了下列文件 latex-beamer,latex-xcolor,pgf,tex-common, ...
- Ubuntu 下ALSA声卡设备的配置与使用
最近做项目有一个需求,就是对ubuntu下的ALSA声卡进行使用,在摸索了一大圈之后,将所得记录下来,以备后期查看. 首先先插上声卡设备 以下所用的声卡设备皆为3.5mm的耳机测试. 需要使用usb转 ...
- Ubuntu下安装hive,并配置mysql作为元数据库
一.安装hive 1. 下载并解压hive源程序 sudo tar -zxvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/local # 解压到/usr/local ...
最新文章
- linux 新建用户和权限分配
- 渗透测试之子域到父域的横向移动(Sid History)
- python写linux脚本_Linux下设置python脚本文件为服务
- ORACLE数据库事务隔离级别
- UK Biobank专题
- 中国体外冲击波碎石机市场趋势报告、技术动态创新及市场预测
- 多个Wyze 摄像头漏洞可导致攻击者接管设备并访问视频
- 【论文写作】学生信息管理系统总体设计如何写
- 同一页面中加载两个相同的控件,结果只能出来一个,这是为什么
- 最新android studio 第三方库包导入方法jar,so,module
- Excel导入SQL(VB.NET版)
- NLPIR/ICTCLAS 2015 分词系统使用
- 从零学Java(1)之面向对象
- android外设按键,Android 外接键盘的按键处理 .
- 金融衍生品已成为金融革命新力量
- 华为 QOS服务质量基础知识总结
- 浅谈工业网络架构及安全
- 获取ZoneId 收录的时区和偏移量
- clear 方法的解释及用法
- access查找出生日期年份_access中时间日期查询的一些总结