我需要在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
 
以上抄袭度娘不知名博客。
第二步准备工作做好后,准备linux下面的netcore环境:
参考aspnetcore文档,执行相应的命令,
sudo dnf install dotnet-sdk-3.1    
sudo dnf install aspnetcore-runtime-3.1
sudo dnf install dotnet-runtime-3.1      重要因为是控制台程序。
 
第三步准备代码
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下面,本来拷贝到程序中,发现删掉后一杨可以运行,还是挺顺利的。

 

netcore3.1 程序在cento8下运行selenium的更多相关文章

  1. (转载)用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序“

    原文地址:http://www.vcerror.com/?p=1483 问题描述: 用VC2013编译了一个程序,在Windows 8.Windows 7(64位.32位)下都能正常运行.但在Win ...

  2. 如何让VS2012编写的程序在XP下运行

    Win32主程序需要以下设置 第一步:在工程属性General设置 第二步:在C/C++ Code Generation 设置 第三步:SubSystem 和  Minimum Required Ve ...

  3. 如何让VS2013编写的程序在xp下运行

    总体分c++程序和c#程序 1.c++程序 这个用C++编写的程序可以经过设置后在XP下运行,主要的“平台工具集”里修改就可以. 额外说明:(1)程序必须为Dotnet 4.0及以下版本.(XP只支持 ...

  4. 记事本中写c/c++程序在Windows下运行

     1.在桌面新建一个1.c,内容例如以下: 2.打开cmd命令行窗体,进入CodeBlock安装文件夹下的:E:\Installed\CodeBlocks\MinGW.然后运行mingwvars. ...

  5. 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序

    经常创建项目的时候,采用空项目,那么编译成功后,最好修改下sbusystem . 链接器->系统->子系统->控制台或windows 后面的"最低版本"是5.01

  6. Mac下运行ASP.NET Core应用程序

    Mac下运行ASP.NET Core应用程序 在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的 ...

  7. 在Mac下运行ASP.NET Core应用程序

    在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的第一个ASP.NET应用. 开发环境搭建 首先 ...

  8. DOS环境下含包并引用第三方jar的java程序的编译及运行

    DOS环境下含包并引用第三方jar的java程序的编译及运行 1.程序目录机构 bin:class文件生成目录 lib:第三方jar包目录 src:源程序文件目录 2.程序代码: 3.程序编译 jav ...

  9. vs2005 ,2008,2010中引入app.manifest(即c#程序在win7下以管理员权限运行方法)

    打开VS2005.VS2008.VS2010工程,查看工程文件夹中的Properties文件夹下是否有app.manifest这个文件:如没有,按如下方式创建:鼠标右击工程在菜单中选择“属性”,点击工 ...

  10. JAVA设置环境变量和在DOS下运行java程序

    在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http:/ ...

随机推荐

  1. ImageSharp 一个全新的、功能齐全的、完全托管的、跨平台的 2D 图形库

    ImageSharp 是一个全新的.功能齐全的.完全托管的.跨平台的 2D 图形库.ImageSharp 旨在简化图像处理,为您带来了一个功能强大而又非常简单的 API. 可以实现很多功能,如:缩放, ...

  2. C# 平台调用过程

    (1)调用LoadLibrary加载非托管DLL到内存中,并调用GetProcAddress 获得内存中非托管函数的指针. (2)  为包含非托管函数地址的托管签名生成一个DllImport存根(st ...

  3. CDN 引入 axios 和 qs 及其使用方法

    一些小项目,没必要搭建脚手架,直接以CDN的方式引入 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...

  4. archlinux xfce 出现[FAILED] Failed to mount /boot, systemctl status boot.mount出现 mount: /boot: unknown filesystem type 'vfat' 滚挂了

    开机显示:[FAILED] Failed to mount /boot 使用命令systemctl status boot.mount后出现 mount: /boot: unknown filesys ...

  5. 初识Hbase架构以及数据读写(尚硅谷)

  6. 关于 ThreadLocal 你需要知道的几点

    一.ThreadLocal是什么? 一个类对象类型,提供属线程本地变量,也就是同一个变量对不同线程保存了不同的值,但是和线程自身定义的自属变量不同. 通常以私有静态类型定义,用以保存特定线程特定状态属 ...

  7. 面试官:如何搭建Redis集群?

    Redis 集群(Redis Cluster)是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服 ...

  8. 个性化定义多个 Git 托管平台配置

    一.背景说明 本人使用了多个 Git 托管平台,包括 Github.Gitlab 和 Gitee.为了避免提交信息(主要是用户名和邮箱地址)错乱,我希望在向不同的托管平台提交内容时,能够自动设置相应的 ...

  9. Jetty的工作参数

    Jetty加载参数的优先级: 命令行. $JETTY_BASE下的文件. 使用--include-jetty-dir指定的目录下的文件. $JETTY_HOME下的文件. 查看当前的配置参数,执行如下 ...

  10. 【分享汇总】AIoT 开源科技节暨 OpenHarmony 技术论坛(附链接)

    在开源科技 OSTech 和环球资源联手举办的"AIoT 开源科技节暨 OpenHarmony 技术论坛"上,一众技术大咖.开源鸿蒙生态上下游厂商与开发者群体齐聚一堂,畅谈&quo ...