Skip to content

商务合作:vTikTok


公众号:



安装包的方式

  1. brew 是Mac OSX上的软件包管理工具
  2. yum 是红帽系(Redhat、Centos、Fedora等)的软件包管理命令
  3. pip Python的包管理工具
  4. rpm 是红帽系(Redhat、Centos、Fedora等)的软件包管理命令,安装.rpm结尾的包,但rpm不会管理依赖关系。
  5. apt-get(安装deb包) 是德班系(Debian、Ubuntu等)的软件管理命令

Yum

yum是一个安装包的软件,yum会自动管理依赖关系,底层调用rpm管理软件包

简单的说: rpm 只能安装已经下载到本地机器上的rpm 包;yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的。

rpm 是linux的一种软件包名称,以.rpm结尾,安装的时候语法为:rpm -ivh 包名。 rpm包的安装有个很大的缺点就是文件的关联性太大,有时装一个软件要安装很多其他的软件包,很麻烦。

所以为此RedHat小红帽开发了yum安装方法,他可以彻底解决这个关联性的问题。

Homebrew

linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有yum,Ubuntu有apt-get 神马,你用mac os,不好意Mac os木有类似的东东,泪奔中几经折腾总算找到了第三方支持:Homebrew, Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum神器。

【Python爬虫】CentOS7上使用Chrome无头浏览器

Chrome是Google家的浏览器,在2007年开始推出了自己的无头模式。而我们曾经熟悉的PhantomJS却在之后不再被Selenium所支持(目前只支持Chrome和Firefox的无头模式,据说这是一种大厂效应。

主要步骤只有三个:

  1. 安装chrome
  2. 下载chrome对应的chromedriver(通过google-chrome --version查看已经安装的chrome的版本号)
  3. 配置环境变量(可选)·vim /.bash_profile~,可以直接在脚本中指定路径。export PATH=$PATH:/usr/alien_bin/
  4. 安装selenium:pip3 install selenium
  5. 编写Python脚本

安装chrome

添加repo源

sudo vi /etc/yum.repos.d/google.repo
sudo vi /etc/yum.repos.d/google.repo

填写内容:

[google]
name=Google-x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=0
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
[google]
name=Google-x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=0
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

开始安装:

sudo yum update
sudo yum install google-chrome-stable
sudo yum update
sudo yum install google-chrome-stable

查看CentOS的pip和Python安装位置和版本

which pip
which python3

pip --version
python3 -V
which pip
which python3

pip --version
python3 -V

一个简单的在CentOS下运行的脚本

from selenium import webdriver
from selenium.webdriver.chrome import options

DRIVER_PATH = '/usr/alien_bin/chromedriver'
# DRIVER_PATH = '/Users/alien/MyLib/chromedriver'

if __name__ == "__main__":
    chrome_options = options.Options()
    isHeadless = True
    if isHeadless:
        chrome_options.add_argument('--no-sandbox')  # 解决DevToolsActivePort文件不存在的报错
        chrome_options.add_argument('--headless')
        chrome_options.add_argument('--disable-gpu')

    chrome_options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36")

    # 处理SSL证书错误问题
    chrome_options.add_argument('--ignore-certificate-errors')
    chrome_options.add_argument('--ignore-ssl-errors')
    # Selenium规避防止被检测(设置浏览器为开发者模式)
    chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])

    driver = webdriver.Chrome(executable_path=DRIVER_PATH, port=0, options=chrome_options)

    # 访问目标URL
    driver.get('https://www.baidu.com/')
    print(driver.page_source)
    driver.close()
    driver.quit()
from selenium import webdriver
from selenium.webdriver.chrome import options

DRIVER_PATH = '/usr/alien_bin/chromedriver'
# DRIVER_PATH = '/Users/alien/MyLib/chromedriver'

if __name__ == "__main__":
    chrome_options = options.Options()
    isHeadless = True
    if isHeadless:
        chrome_options.add_argument('--no-sandbox')  # 解决DevToolsActivePort文件不存在的报错
        chrome_options.add_argument('--headless')
        chrome_options.add_argument('--disable-gpu')

    chrome_options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36")

    # 处理SSL证书错误问题
    chrome_options.add_argument('--ignore-certificate-errors')
    chrome_options.add_argument('--ignore-ssl-errors')
    # Selenium规避防止被检测(设置浏览器为开发者模式)
    chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])

    driver = webdriver.Chrome(executable_path=DRIVER_PATH, port=0, options=chrome_options)

    # 访问目标URL
    driver.get('https://www.baidu.com/')
    print(driver.page_source)
    driver.close()
    driver.quit()