netcore3.1 程式在cento8下執行selenium
阿新 • • 發佈:2020-09-08
我需要在linux下執行selenium抓取資料,本人不熟悉Python,所以只能用netcore。在帶linux介面上執行爬取程式,驅動chromedriver比較簡單。介面化安裝好chrome,下載chromedriver
放到程式目錄下,跑起來沒啥問題。
在linux無介面下過程還算順利。
第一步準備好linux系統,本人用的是centos8,下面是centos上準備工作:
1、安裝chrome 用下面的命令安裝Google Chrome yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm 也可以先下載至本地,然後安裝 wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm yum install ./google-chrome-stable_current_x86_64.rpm 安裝必要的庫 yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts 2、安裝 chromedriver(末尾附chrome和chromedriver的對應版本) chrome官網 wget https://chromedriver.storage.googleapis.com/2.38/chromedriver_linux64.zip 淘寶源(推薦) wget http://npm.taobao.org/mirrors/chromedriver/2.41/chromedriver_linux64.zip 將下載的檔案解壓,放在如下位置 unzip chromedriver_linux64.zip mv chromedriver /usr/bin/ 給予執行許可權 chmod +x /usr/bin/chromedriver 以上抄襲度娘不知名部落格。 第二步using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Remote;using System; using System.IO; namespace TestCentOS { class Program { static void Main(string[] args) { ChromeOptions chromeOptions = new ChromeOptions(); chromeOptions.AddArguments("--no-sandbox"); chromeOptions.AddArguments("--disable-dev-shm-usage"); chromeOptions.AddArguments("--headless"); RemoteWebDriver driver = new ChromeDriver(chromeOptions); driver.Url = "https://www.baidu.com"; Console.WriteLine(driver.PageSource); Console.WriteLine("Hello World!"); Console.Read(); } } }
目錄結構,上傳到centos:
第四步執行程式,在第一步安裝完的chromedriver在 centos 根目錄 usr/bin下面,本來拷貝到程式中,發現刪掉後一楊可以執行,還是挺順利的。