先找chrome安装包,注意rpm / dpg,注意x86_64 / x64,注意是linux安装包。(贼难找,我最后从一个三流网站下载到的)。自行安装吧。如:
rpm -ivh ./google-chrome-stable_current_x86_64.rpm # w我这是本地安装包
如果安装缺失依赖,用yum provides 缺失的依赖名查找该依赖所在包如packge_demo,然后yum -y install packge_demo。然后安装好了。
#检查chrome的版本 google-chrome --version
二、准备Chromedriver
准备适合linux的chromedriver,不是适合windows的准备chromedriver.exe。在上下载。
echo $PATH # 查看环境变量目录
其中/usr/local/sbin是目录,其他是文件或者找不到,不知道怎么地。
mv ./chromedriver /usr/local/sbin/chromedriver # 将chromedriver移动到环境目录下
三、编写无头浏览器_爬虫脚本
为linux编写的无头脚本还必须加:(windows可以不加)
chrome_options.add_argument('--no-sandbox') # 禁用沙盒 chrome_options.add_argument('--disable-dev-shm-usage') # 大量渲染时候写入/tmp而非/dev/shm
# 实例:test.1.py,脚本作用是输出网站title from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver import ChromeOptions # 无头浏览器 chrome_options = Options() chrome_options.add_argument("--headless") # 无头 chrome_options.add_argument('--disable-gpu') # 禁用GPU chrome_options.add_argument('--no-sandbox') # 禁用沙盒 chrome_options.add_argument('--disable-dev-shm-usage') # 大量渲染时候写入/tmp而非/dev/shm # 规避selenium被反爬。好像options没被用到,可以不加。 options = ChromeOptions() options.add_experimental_option('excludeSwitches', ['enable-automation']) options.add_experimental_option('useAutomationExtension', False) driver = webdriver.Chrome(executable_path='/usr/local/sbin/chromedriver', options=chrome_options) driver.get("https://pintia.cn/problem-sets/dashboard") print(driver.title)
我试过不加chrome_options.add_argument('--disable-dev-shm-usage'),报错如下:
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
四、执行
成功输出网站的title
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.ink0.cn/index.php/2023/05/04/05-5linux%e4%b8%8echrome/
共有 0 条评论