我需要在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. 记录--vue中动态引入图片为什么要是require, 你不知道的那些事

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 相信用过vue的小伙伴,肯定被面试官问过这样一个问题:在vue中动态的引入图片为什么要使用require 有些小伙伴,可能会轻蔑一笑:呵, ...

  2. Java SM2

    pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:// ...

  3. Oracle 章节编号排序

    测试代码 CREATE TABLE TEST (CH_CODE VARCHAR2(10)); INSERT INTO TEST (CH_CODE) VALUES ('1.1'); INSERT INT ...

  4. PSS:你距离NMS-free+提点只有两个卷积层 | 2021论文

      论文提出了简单高效的PSS分支,仅需在原网络的基础上添加两个卷积层就能去掉NMS后处理,还能提升模型的准确率,而stop-grad的训练方法也挺有意思的,值得一看 来源:晓飞的算法工程笔记 公众号 ...

  5. KingabseES-SQL优化_提升子查询

    什么是提升子查询/子链接 SubLink,子查询/子链接,他们的区别:子查询不在表达式中子句,子链接在in/exists表达式中的子句. 若以范围表的方式存在,则是子查询: 若以表达式的存在,则是子连 ...

  6. Kafka原理剖析之「位点提交」

    一.背景 Kafka的位点提交一直是Consumer端非常重要的一部分,业务上我们经常遇到的消息丢失.消息重复也与其息息相关.位点提交说简单也简单,说复杂也确实复杂,没有人能用一段简短的话将其说清楚, ...

  7. 一文了解网络编程之走进TCP三次握手和HTTP那些你不知道的事

    受到很多引人入胜的标题党的影响,我终于决定,要起一个比他们还标题党的题目,打不过还不能加入吗,嘿嘿. 网络编程一直是我的弱项,其实归根结底还是我太懒了,一看到那个osi七层模型,TCP/IP模型还有那 ...

  8. 【FAQ】推送服务常见问题及解答

    目录 1.报错6003解决方案. 2.推送成功收不到消息. 3.Gettoken返回0,无法进入onToken函数,无法收到广播. 4.如何在华为开放平台查看消息属性,推送的时候带了importanc ...

  9. std::thread 四:异步(async)

    *:如果 std::async 中传递参数 std::lunnch::deferred ,就需要等待调用 get() 或者 wait() 才会执行,并且代码非子线程运行,而是在主线程中执行 #incl ...

  10. 获取 BSTR 字符串长度

    BSTR a = L"hello world"; int len = SysStringByteLen(a);