安装包的方式
- brew 是Mac OSX上的软件包管理工具
- yum 是红帽系(Redhat、Centos、Fedora等)的软件包管理命令
- pip Python的包管理工具
- rpm 是红帽系(Redhat、Centos、Fedora等)的软件包管理命令,安装.rpm结尾的包,但rpm不会管理依赖关系。
- 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的无头模式,据说这是一种大厂效应。
主要步骤只有三个:
- 安装chrome
- 下载chrome对应的chromedriver(通过google-chrome --version查看已经安装的chrome的版本号)
- 配置环境变量(可选)·vim
/.bash_profile~
,可以直接在脚本中指定路径。export PATH=$PATH:/usr/alien_bin/ - 安装selenium:pip3 install selenium
- 编写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()