各位小伙伴儿的采集日常是不是被JavaScript的各种点击事件折腾的欲仙欲死啊?好不容易找到个Selenium+Chrome可以解决问题!

但是另一个▄█▀█●的事实摆在面前,服务器都特么没有GUI啊··

好吧!咱们要知难而上!决不能被这个点小困难打倒·······

然而摆在面前的事实是····  他丫的各种装不上啊!坑爹啊!

那么我来拯救你们于水火之间了!

服务器如下:

​[root@spider01 ~]# hostnamectl
   Static hostname: spider01
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 1c4029c4e7fd42498e25bb75101f85b6
           Boot ID: f5a67454b94b454fae3d75ef1ccab69f
    Virtualization: kvm
  Operating System: CentOS Linux  (Core)
       CPE OS Name: cpe:/o:centos:centos:
            Kernel: Linux -.el7.x86_64
      Architecture: x86-

安装Chromeium:

## 安装yum源
[root@spider01 ~]# sudo yum install -y epel-release
## 安装Chrome
[root@spider01 ~]# yum install -y chromium

去这个地方:https://sites.google.com/a/chromium.org/chromedriver/downloads 下载ChromeDriver驱动放在/usr/bin/目录下:

完成结果如下:

​[root@spider01 ~]# ll /usr/bin/ | grep chrom
-rwxrwxrwx.  root root    11月  : chromedriver
lrwxrwxrwx.  root root         11月  : chromium-browser -> /usr/lib64/chromium-browser/chromium-browser.sh

安装XVFB:

​[root@spider01 ~]# yum install Xvfb -y
[root@spider01 ~]# yum install xorg-x11-fonts* -y

新建在/usr/bin/ 一个名叫 xvfb-chromium 的文件写入以下内容:

​

[root@spider01 ~]# cat /usr/bin/xvfb-chromium
#!/bin/bash

_kill_procs() {
  kill -TERM $chromium
  wait $chromium
  kill -TERM $xvfb
}

# Setup a trap to catch SIGTERM and relay it to child processes
trap _kill_procs SIGTERM

XVFB_WHD=${XVFB_WHD:-1280x720x16}

# Start Xvfb
Xvfb : -ac -screen  $XVFB_WHD -nolisten tcp &
xvfb=$!

export DISPLAY=:

chromium --no-sandbox --disable-gpu$@ &
chromium=$!

wait $chromium
wait $xvfb

​

更改软连接:

​

## 更改Chrome启动的软连接
[root@spider01 ~]# ln -s /usr/lib64/chromium-browser/chromium-browser.sh /usr/bin/chromium

[root@spider01 ~]# rm -rf /usr/bin/chromium-browser

[root@spider01 ~]# ln -s /usr/bin/xvfb-chromium /usr/bin/chromium-browser

[root@spider01 ~]# ln -s /usr/bin/xvfb-chromium /usr/bin/google-chrome

[root@spider01 ~]# ll /usr/bin/ | grep chrom*
-rwxrwxrwx.  root root    11月  : chromedriver
lrwxrwxrwx.  root root         11月  : chromium -> /usr/lib64/chromium-browser/chromium-browser.sh
lrwxrwxrwx.  root root         11月  : chromium-browser -> /usr/bin/xvfb-chromium
-rwxr-xr-x.  root root      12月    chronyc
lrwxrwxrwx.  root root         11月  : google-chrome -> /usr/bin/xvfb-chromium
-rwxrwxrwx.  root root        11月  : xvfb-chromium

​

来瞅瞅能不能用哦:

​

>>> from selenium import webdriver
>>> driver = webdriver.Chrome()
>>> driver.get("http://www.baidu.com")
>>> driver.find_element_by_xpath("./*//input[@id='kw']").send_keys("哎哟卧槽")
>>> driver.find_element_by_xpath("./*//input[@id='su']").click()
>>> driver.page_source

​

好了部署完了!当然Docker这么火贼适合懒人了!来来 看这儿 Docker版的 妥妥滴!

​docker pull thsheep/chromium-xvfb-py3:master

做好了Python3.6.3和Chrome集成

需要自己使用Dockerfile来重新打包安装你需要的Python包。

芝麻HTTP:在无GUI的CentOS上使用Selenium+Chrome的更多相关文章

  1. 小白学爬虫-在无GUI的CentOS上使用Selenium+Chrome

    爬虫代理IP由芝麻HTTP服务供应商提供各位小伙伴儿的采集日常是不是被JavaScript的各种点击事件折腾的欲仙欲死啊?好不容易找到个Selenium+Chrome可以解决问题! 但是另一个▄█▀█ ...

  2. puppeteer部署到centOS上出现launch chrome fail的情况

    在Mac上调试无问题,放到阿里云上运行会报错. 需要先安装依赖, yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 lib ...

  3. centos7无GUI运行selenium chromedriver 亲测可用!

    1. 安装chrome 首先安装google的epel源 vi /etc/yum.repos.d/google.repo [google] name=Google-x86_64 baseurl=htt ...

  4. CentOS上安装Hadoop2.7,添加数据节点,运行wordcount

    安装hadoop的步骤比较繁琐,但是并不难. 在CentOS上安装Hadoop2.7 1. 安装 CentOS,注:图形界面并无必要 2. 在CentOS里设置静态IP,手工编辑如下4个文件 /etc ...

  5. 在CentOS上把PHP从5.4升级到5.5

    在CentOS上把PHP从5.4升级到5.5 摘要:本文记录了在CentOS 6.3上,把PHP从5.4.8升级到5.5.13的过程. 1. 概述 在我做的一个项目中,最近我对生产服务器上的一系列系统 ...

  6. 在CentOS上部署kubernetes1.9.0集群

    原文链接: https://jimmysong.io/kubernetes-handbook/cloud-native/play-with-kubernetes.html (在CentOS上部署kub ...

  7. .NET跨平台:在CentOS上编译dnx并运行ASP.NET 5示例程序

    在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了 ASP.NET 5 示例程序.在这篇博文中我们将 Ubuntu 换成 CentOS. 目前 dnx 的编译需要用到 m ...

  8. NoSql1 在Linux(CentOS)上安装memcached及使用

    前言:       今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看 ...

  9. 在Ubuntu|CentOS上安装Shutter截图工具及快捷键设置

    简介 Shutter前身叫GScrot,它是一款相当棒的截图软件. 通过Shutter,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...

随机推荐

  1. Struts2的配置和一个简单的例子

    Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...

  2. jdk环境变量配置及配置原因

    windows下: 一.设置环境变量 变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk1.6.0  (即jdk安装的位置) 变量名:Path  (这个变量名已在系 ...

  3. Java对正则表达式的支持(一)

    Java对正则表达式的支持主要体现在String.Pattern.Matcher和Scanner类. 1.Pattern.Matcher 先看一个Pattern和Matcher类使用正则表达式的例子. ...

  4. BZOJ 3640: JC的小苹果 [概率DP 高斯消元 矩阵求逆]

    3640: JC的小苹果 题意:求1到n点权和\(\le k\)的概率 sengxian orz的题解好详细啊 容易想到\(f[i][j]\)表示走到i点权为j的概率 按点权分层,可以DP 但是对于\ ...

  5. BZOJ 3809: Gty的二逼妹子序列 & 3236: [Ahoi2013]作业 [莫队]

    题意: 询问区间权值在$[a,b]$范围内种类数和个数 莫队 权值分块维护种类数和个数$O(1)-O(\sqrt{N})$ #include <iostream> #include < ...

  6. Xposed快速hook关键点

    0x01 导读 工作中,常常需要针对各种app进行快速代码定位,找到代码修改和调试各种功能,就不得不面对xposed来进行一系列快速定位关键代码的问题了.那么问题来了,如何快速找到代码呢? 这里值这针 ...

  7. CocosCreator游戏开发---菜鸟学习之路(三)如何在CocosCreator中使用Pomelo

    PS(废话): 这段时间都在研究网易的Pomelo框架,作为新手小白,自然遇到了不少坑爹的事情.(当然也有可能是因为自己技术不过关的原因所以导致在很多基础的问题上纠结了很久.)网上也搜索了好久,但是基 ...

  8. Node.js 基础介绍(一)

    Node.js 学习笔记一) 简单介绍--名称 Node.js,平时听到有好几种叫法,node .Node.js.nodejs ,但是比较正式的称呼还是"Node.js",由于它是 ...

  9. 老男孩Python全栈开发(92天全)视频教程 自学笔记19

    day19 课程内容: 第19天的课程就是复习一些正则表达式,以及说一下计算器的思路,我就把我做的计算器代码当这一天的内容吧. 计算器作业:不eval函数,计算能计算:'1-2*((60-30-8*( ...

  10. javascript高级程序设计第三章的一些笔记

    [TOC] 1. 语法 1.1 区分大小写 变量.函数名和操作费都区分大小写. 1.2 标识符 标识符指变量.函数.属性的名字,或者函数的参数.标识符按以下规则组合: 第一个字符必须是一个字母,下划线 ...