`
zhimaruanjian
  • 浏览: 32709 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

芝麻HTTP:在无GUI的CentOS上使用Selenium+Chrome

 
阅读更多
<div class="iteye-blog-content-contain" style="font-size: 14px;">
<p>各位小伙伴儿的采集日常是不是被JavaScript的各种点击事件所折腾?好不容易找到个Selenium+Chrome可以解决问题!</p>
<p>但是另一个▄█▀█●的事实摆在面前,服务器都特么没有GUI啊··</p>
<p>好吧!咱们要知难而上!决不能被这个点小困难打倒·······</p>
<p>然而摆在面前的事实是····  他丫的各种装不上啊!坑爹啊!</p>
<p>那么我来拯救你们于水火之间了!</p>
<p>服务器如下:</p>
<pre name="code" class="java">[root@spider01 ~]# hostnamectl
   Static hostname: spider01
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 1c4029c4e7fd42498e25bb75101f85b6
           Boot ID: f5a67454b94b454fae3d75ef1ccab69f
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-514.6.2.el7.x86_64
      Architecture: x86-64
</pre>
<p> 安装Chromeium:</p>
<pre name="code" class="java">​## 安装yum源
[root@spider01 ~]# sudo yum install -y epel-release
## 安装Chrome
[root@spider01 ~]# yum install -y chromium</pre>
<p> 去这个地方:https://sites.google.com/a/chromium.org/chromedriver/downloads 下载ChromeDriver驱动放在/usr/bin/目录下:</p>
<p>完成结果如下:</p>
<pre name="code" class="java">[root@spider01 ~]# ll /usr/bin/ | grep chrom
-rwxrwxrwx. 1 root root   7500280 11月 29 17:32 chromedriver
lrwxrwxrwx. 1 root root        47 11月 30 09:35 chromium-browser -&gt; /usr/lib64/chromium-browser/chromium-browser.sh</pre>
<p> 安装XVFB:</p>
<pre name="code" class="java">​[root@spider01 ~]# yum install Xvfb -y
[root@spider01 ~]# yum install xorg-x11-fonts* -y
</pre>
<p> 新建在/usr/bin/ 一个名叫 xvfb-chromium 的文件写入以下内容:</p>
<pre name="code" class="java">​

[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 :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &amp;
xvfb=$!

export DISPLAY=:99

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

wait $chromium
wait $xvfb

​</pre>
<p> 更改软连接:</p>
<pre name="code" class="java">​

## 更改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. 1 root root   7500280 11月 29 17:32 chromedriver
lrwxrwxrwx. 1 root root        47 11月 30 09:47 chromium -&gt; /usr/lib64/chromium-browser/chromium-browser.sh
lrwxrwxrwx. 1 root root        22 11月 30 09:48 chromium-browser -&gt; /usr/bin/xvfb-chromium
-rwxr-xr-x. 1 root root     73848 12月  7 2016 chronyc
lrwxrwxrwx. 1 root root        22 11月 30 09:48 google-chrome -&gt; /usr/bin/xvfb-chromium
-rwxrwxrwx. 1 root root       387 11月 29 18:16 xvfb-chromium

​</pre>
<p> 来瞅瞅能不能用哦:</p>
<pre name="code" class="java">​&gt;&gt;&gt; from selenium import webdriver
&gt;&gt;&gt; driver = webdriver.Chrome()
&gt;&gt;&gt; driver.get("http://www.baidu.com")
&gt;&gt;&gt; driver.find_element_by_xpath("./*//input[@id='kw']").send_keys("哎哟卧槽")
&gt;&gt;&gt; driver.find_element_by_xpath("./*//input[@id='su']").click()
&gt;&gt;&gt; driver.page_source
</pre>
<p> 好了部署完了!当然Docker这么火贼适合懒人了!来来 看这儿 Docker版的 妥妥滴!</p>
<pre name="code" class="java">​docker pull thsheep/chromium-xvfb-py3:master
</pre>
<p> 做好了Python3.6.3和Chrome集成</p>
<p>需要自己使用Dockerfile来重新打包安装你需要的Python包。</p>
</div>
分享到:
评论

相关推荐

    centos下libstdc++

    centos下libstdc++库依赖问题。这里下载:http://pkgs.org/centos-6-rhel-6/centos-rhel-i386/compat-libstdc++-296-2.96-144.el6.i686.rpm/download/

    CentOS7.0使用手册+中文PDF版.rar

    CentOS7.0使用手册+中文PDF版.rar 永久免费

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

    3. 安装Chrome:由于selenium需要与Chrome交互,所以需要在服务器上安装Chrome浏览器。 4. 安装Python与pip:selenium通常用Python来编写测试脚本,所以需要安装Python和pip(Python的包管理器)。 四、安装...

    selenium+谷歌浏览器等.zip

    通过这个压缩包,用户可以获得所需的所有文件,按照提供的博客教程一步步操作,就可以在CentOS云服务器上成功部署并运行Selenium测试,实现对谷歌浏览器的自动化测试。同时,由于Selenium Grid的存在,还可以扩展到...

    centos上iscsi+multipath多路径存储配置手册.pdf

    本手册主要介绍了在 CentOS 操作系统上配置 iSCSI+Multi-Path 多路径存储的步骤和方法。下面是相关知识点的总结: iSCSI 协议 iSCSI(Internet Small Computer System Interface)是一种基于 TCP/IP 协议的存储...

    CentOS7+fcitx+sougou

    在Linux系统中,尤其是服务器操作系统,CentOS是一个广泛使用的开源发行版。这个场景涉及到在CentOS7上安装和配置fcitx输入法框架,并且特别提到了与搜狗输入法的集成。这是一个针对中文用户非常重要的功能,因为...

    Centos+Hadoop+Hive+HBase

    ### Centos+Hadoop+Hive+HBase 环境搭建详解 #### 一、Centos基础环境搭建 ##### 1.1 软件准备 为了搭建一个基于Centos的操作系统,需要准备以下软件: - **VMware-workstation-full-8.0.4-744019.exe**:这是...

    libstdc++.so.6.0.22 centos7 64bit

    centos7的环境下安装了python3.7运行程序,在tensorflow报错“ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found” 下载新的进行安装和配置

    CentOS7+Kubeadm+K8S集群部署学习实践手册

    CentOS7+Kubeadm+K8S集群部署学习实践手册

    centos6安装chrome

    这篇博文将指导我们如何在CentOS 6上安装Chrome。由于官方的Chrome浏览器并不直接支持旧版的CentOS,我们需要采取一些额外的步骤来实现安装。 首先,我们需要更新系统的软件包。在终端中输入以下命令来更新yum仓库...

    centos7下的google-chrome安装包

    现在centos不支持yum安装,此方式可以在centos7安装google-chrome

    CentOS 7.5 部署 Hbase + Spark 集群.zip

    CentOS 7.5 部署 Hbase + Spark 集群 CentOS 7.5 部署 Hbase + Spark 集群 CentOS 7.5 部署 Hbase + Spark 集群 CentOS 7.5 部署 Hbase + Spark 集群

    CentOS系统安装JDK+Crowd+JIRA+Confluence教程

    JDK+Crowd+JIRA+Confluence安装教程 JDK+Crowd+JIRA+Confluence安装教程

    CentOs5.5+mysql+nginx+php5.3.3安全安装手册.doc

    CentOs5.5+mysql+nginx+php5.3.3安全安装手册.doc

    centos7 x86-64 libstdc++.so.6.0.30

    在CentOS7上,选择特定版本的`libstdc++.so.6`是为了保持与系统其他组件的兼容性以及稳定性。 安装`libstdc++.so.6.0.30`时,通常需要通过yum或dnf(取决于你的CentOS版本)来管理软件包,例如: ```bash sudo yum...

    linux+centos7 +vscode+C++11+muduo示例

    在本示例中,我们将探讨如何在Linux CentOS 7系统上使用Visual Studio Code (VSCode)进行C++11编程,并结合muduo库进行应用开发。VSCode是一款跨平台的代码编辑器,支持多种语言,包括C++,并且拥有丰富的插件生态...

    CentOS7环境chrome的安装包和依赖

    在Linux系统中,尤其是服务器级别的操作系统如CentOS7,安装Google Chrome浏览器可能并不像在Windows或macOS上那样直接。由于Google Chrome不是CentOS官方软件仓库中的应用,我们需要通过一些额外步骤来安装。以下是...

    CentOS 6.2+Nginx+mysql

    CentOS 6.2+Nginx+mysql

    centos系统libstdc++64位.zip

    例如,在CentOS 6中,可以运行`yum install libstdc++.x86_64`,而在CentOS 7及更高版本中,使用`dnf install libstdc++.x86_64`。这些命令会自动处理依赖关系,确保系统上的所有相关软件都能顺利工作。 需要注意的...

Global site tag (gtag.js) - Google Analytics