在服务器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*.deb
     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/
     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.-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 webdriver
     from pyvirtualdisplay import Display
    
     if __name__ == '__main__':
     display = Display(visible=0, size=(800, 800))
     display.start()
     browser = webdriver.Chrome()
     browser.get('http://www.baidu.com')
     print (browser.title)

    大功告成。第一篇博客,嘻嘻。 如果还有问题那就是第一步安装的Chrome和Chromedriver版本不匹配导致的,仔细检查一下。

Ubuntu下的Selenium爬虫的配置的更多相关文章

  1. Linux(Ubuntu)下MySQL的安装与配置

    转自:http://www.2cto.com/database/201401/273423.html 在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今 ...

  2. Ubuntu下安装、激活并配置Pycharm

    Ubuntu下安装.激活并配置Pycharm 最近在学习Python这门语言,到了需要Python编译器学习的阶段,通过网上了解各个Python编译器的优缺点,最后选择了pycharm作为Python ...

  3. Ubuntu下安装JDK以及相关配置

    1.查看系统位数,输入以下命令即可 getconf LONG_BIT 2.下载对应的JDK文件,我这里下载的是jdk-8u60-linux-64.tar.gz 3.创建目录作为JDK的安装目录,这里选 ...

  4. Fedora和Ubuntu下安装OpenGL开发环境配置

    Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...

  5. ubuntu下的openfire安装、配置、运行

    openfire服务器              Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议.您可以使用它轻易的构建高效率的即时通信服务器.Op ...

  6. Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试

    在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 ...

  7. Ubuntu下Hadoop的安装和配置

    最近又需要要搭hadoop环境,所以开始学习,下面是我的笔记,仅供大家参考! Hadoop安装: JDK1.6+ 操作系统:Linux,Window和Unix也可以做Hadoop的开发,只有Linux ...

  8. [转载]Ubuntu下apache的安装与配置

    原文地址:https://blog.csdn.net/gatieme/article/details/53025505 1 安装apache 在 Ubuntu 上安装 Apache,有两种方式 使用源 ...

  9. ubuntu下Tomcat7的安装和配置

    和前几个软件一样,Tomcat 同样是由JAVA开发的,所以,在安装前一定要装好JDK. 大家可以到 http://tomcat.apache.org/download-70.cgi 下载最新的Tom ...

随机推荐

  1. @RequestParam @PathVariable

    1.Request参数 在访问各种各样网站时,经常会发现网站的URL的最后一部分形如:?xxxx=yyyy&zzzz=wwww.这就是HTTP协议中的Request参数,它有什么用呢?先来看一 ...

  2. Hint: Fallback method 'public java.lang.String queryUserByIdFallback(java.lang.Long)' must return: User or its subclass

    1.错误日志 熔断器添加错误方法返回时,报了一个 error. com.netflix.hystrix.contrib.javanica.exception.FallbackDefinitionExc ...

  3. xcode 10 模拟器报错

    xcode 10(也可能是任意版本)run 模拟器时,发现会报下面的错误. This app could not be installed at this time.Could not access ...

  4. caffe 环境搭建

    1.VS安装 VS社区版(个人免费): http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464 ...

  5. 铁大Facebook隐私保护NABCD

    隐私保护功能: N:满足了用户保护自己隐私信息的需求 A:对每一项用户可能需要保护的信息,我们都会添加仅自己可见.指定人可见.部分人可见或所有人可见设置 B:让用户的信息受到更全面的保护,而不仅仅是对 ...

  6. 虚拟机——虚拟机VMware Workstation 的.vmdk格式与VirtualBox 的.vdi格式相互转换

    啦啦啦~~~ 由于现在Vmware Workstation的越来越普及,让很多小伙伴不知道怎么把以前用的VirtualBox虚拟机vdi格式转换成vmdk格式,下面我们就来转换一下吧... 第一步:找 ...

  7. Vue渐进式JavaScript 框架

    1. Vue简介 1.1  初步了解Vue.js框架 Vue.js (读音 /vjuː/,类似于 view) 是一种轻量级前端MVVM框架.同时吸收了React(组件化)和Angular(灵活指令页面 ...

  8. arm浮点运算

    首先总结一下计算机中的浮点数的存储. 浮点数的标准是IEEE-754,规定了浮点数的存储都是通过科学计算法来存储的,n2-e的表示. 浮点数首先分为,定浮点(fixed-point)和浮点(float ...

  9. Lua 判断文件类型为wav

    [1]应用示例 文件类型为wav格式 -- 判断文件类型 local function isType(filename) local res = string.match(filename, &quo ...

  10. 【转】LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    用VS2010编译C++项目时出现这样的错误: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 方案一:(这个方法比较好,在用qt运行时出现问题也能解决) 复制 C:\Windows\ ...