记录一次C#在arm64的Ubuntu下安装使用selenium的过程

手头上有一台没用的安卓手机,想着安装Ubuntu当爬虫服务器用,安卓手机root后使用delopy安装启动Ubuntu系统这些前置过程就不谈了

重点谈怎么在ssh下安装使用selenium的过程

首先我们安装aptitude这个软件包管理库,这个库相对于apt功能,对软件的依赖处理更加优秀,且使用方式和apt一样

sudo apt-get   install aptitude

然后需要安装chromium相关的安装包

sudo aptitude install chromium-browser

紧接着你会看到以下信息

root@localhost:~# sudo aptitude install chromium-browser
The following NEW packages will be installed:
  chromium-browser chromium-browser-l10n{a} chromium-codecs-ffmpeg-extra{a}
The following partially installed packages will be configured:
  chromium-chromedriver
0 packages upgraded, 3 newly installed, 0 to remove and 4 not upgraded.  

安装完毕以后,输入以下命令chromedriver看安装是否正常

root@localhost:~# chromedriver
Starting ChromeDriver 112.0.5615.49 (bd2a7bcb881c11e8cfe3078709382934e3916914-refs/branch-heads/5615@{#936}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

当看到ChromeDriver was started successfully.后,表示chromedriver已经成功启动,然后就可以按Ctrl+C关闭命令行了

然后我们打开visual studio新建 .Net 7(.net6或者.net core项目都可以,但不能用fm框架,因为不能跨平台运行在arm64)控制台项目等,这些过程可以省略

然后打开Nuget搜索selenium

 我们安装第一个就可以了

然后我们键入以下代码

private static void Main(string[] args)
        {
            var service = ChromeDriverService.CreateDefaultService();
            var option = new ChromeOptions();
            option.AddArgument("--headless");//不显示窗口
            option.AddArgument("--disable-gpu");//禁用显卡
            option.AddArgument("--no-sandbox");//root权限下运行所以禁用沙盒
            option.AddArgument("--disable-dev-shm-usage");//关闭开发检测,不然会报错
            using (IWebDriver driver = new ChromeDriver(service, option))
            {
                driver.Navigate().GoToUrl("http://www.baidu.com");  //driver.Url = "http://www.baidu.com"是一样的
                var source = driver.PageSource;
                Console.WriteLine(source);
            }
        }

 接下来,我们右键项目,发布,发布到文件夹

.net 7的生成单个文件以及剪接未使用的代码功能相当强大,可以大幅度减少应用大小,当然,如果遇到程序不能运行的情况,也还是需要取消勾选裁剪未使用代码的功能的

然后我们把生成的单个文件传输到ubuntu里面去

使用 chmod +x 给应用提权,紧接着运行就可以了,这里/root/ChromeS是我这边用来测试项目的路径,请自行修改成自己的

chmod +x /root/ChromeS
/root/ChromeS

以上就是全部教程了

posted @ 2023-05-03 14:25  0Emil0  阅读(352)  评论(0编辑  收藏  举报