C#爬虫:使用Selenium,Selenium配置指南


一、介绍

Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。

1、Selenium Webdriver(也就是Selenium2,Selenium3)和Selenium RC(Selenium 1)一样提供了web自动化的各种语言调用接口库。相比Selenium RC,Selenium WebDriver的编程接口更加直观易懂,也更加简练。

但是和Selenium RC不同的是,Selenium Webdriver是通过各种浏览器的驱动(web driver)来驱动浏览器的,而不是通过注入JavaScript的方式。

我们的代码运行起来是一个进程,里面调用Selenium WebDriver的库和各个浏览器的驱动进程 进行交互,传递Selenium命令 给它们,并且获取命令执行的结果,返回给我们的代码进行处理。

2、Selenium WebDriver目前包括两个版本Selenium 2和Selenium 3。这两个版本从开发代码调用接口上来看,几乎没什么区别。区别在于库的实现和web driver的实现。

Selenium2是Selenium组织帮各种浏览器写web driver的,而Selenium 3里面的web driver是由各个浏览器厂商(Apple,Google,Microsoft,Mozilla)自己提供的。所以Selenium 3的自动化效率更高,成功率也更高。

3、Selenium WebDriver 支持浏览器众多:

  • Google Chrome
  • Microsoft Internet Explorer 7,8,9,10,11在 Windows Vista,Windows 7,Windows 8,Windows 8.1.
  • Microsoft Edge
  • Firefox
  • Safari
  • Opera

利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码 ,做到可见即可爬。

所以Selenium现在被广泛用于Python爬虫。查了下资料,发现这个工具确实强大,最重要的是,C#也是可以调用的。

官方支持Java,C#,Python,Ruby,PHP,Perl,Javascript等语言

官方文档(有C#示例):https://www.selenium.dev/documentation/en/

 

1、安装Selenium

1、我们新建一个C#控制台程序

2、使用Nuget搜索以下依赖库

需要引用的核心库是Selenium.RC,Selenium.Support,Selenium.WebDriver

然后再需要引用浏览器驱动库,这里我以新版Edge浏览器为例,新版Edge使用方式跟Chrome是一样的,程序包名称为Selenium.WebDriver.MSEdgeDriver。

C#爬虫(03):使用Selenium

备注:也可以在微软WebDriver官网下载Edge (Chromium)的webdriver,需要和当前浏览器版本一致。然后下载放置到项目可执行文件的目录。

如果使用Chrome:

先查下本机Chrome的版本

C#爬虫(03):使用Selenium

然后去Nuget搜索Selenium.WebDriver.ChromeDriver进行下载安装。

注意:webdriver版本只需要和当前浏览器主版本一致即可。

C#爬虫(03):使用Selenium

3、实现

界面设计:

C#爬虫(03):使用Selenium

代码:

C# 全选
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Edge;
using System;
using System.Windows.Forms;

namespace CMS_Spider
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();


        }
        /// <summary>
        /// edge浏览器驱动测试
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_EdgeTest_Click(object sender, EventArgs e)
        {
            var service = EdgeDriverService.CreateDefaultService(@".", "msedgedriver.exe");
            service.HideCommandPromptWindow = true;// 关闭黑色cmd窗口
            var options = new EdgeOptions();
            
            options.AddArgument("--headless");
            using (IWebDriver driver = new OpenQA.Selenium.Edge.EdgeDriver(service, options))
            {
                driver.Navigate().GoToUrl(txt_url.Text);  //driver.Url = "http://www.baidu.com"是一样的
                var source = driver.PageSource;
                this.textBox1.Text = source;
            }
        }
        /// <summary>
        /// 谷歌浏览器驱动测试
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_ChromeTest_Click(object sender, EventArgs e)
        {

            var service = ChromeDriverService.CreateDefaultService(@".", "chromedriver.exe");
            service.HideCommandPromptWindow = true;// 关闭黑色cmd窗口
            var options = new ChromeOptions();
            options.AddArgument("--headless");
            using (IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver(service, options))
            {
                driver.Navigate().GoToUrl(txt_url.Text);  //driver.Url = "http://www.baidu.com"是一样的
                var source = driver.PageSource;
                this.textBox1.Text = source;
            }
        }
    }
}

运行效果:

C#爬虫(03):使用Selenium

二、配置指南

 

三、参考:

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
管理员
上一篇:C# DateTime.ToString 参数使用注意
下一篇:EF Core使用MySQL
评论列表

发表评论

评论内容
昵称:
关联文章

C#爬虫使用Selenium,Selenium配置指南
Python使用selenium+chrome配置指南
selenium爬虫被检测到 该如何破
Python Selenium使用火狐浏览器驱动
monaco-editor使用指南
Python Selenium 爬虫如何隐藏Headles-Chrome不被检测出来 避免检测
Python使用selenium+chrome进行抓包
SEO刷排名工具参数配置指南
带有爬虫检测的网站汇总
Python Selenium ChromeDriver 规避检测
Python Selenium 前端如何检测Chrome-Headless不被爬虫
.net Core项目.csproj配置指南
gitblit服务器配置指南
C#代码编码规范手册 软件开发规范 开发指南
bing必应网站站长指南
Anaconda配置
C# 静态类获得 机密配置
201216升级指南
C# 指针简单使用
微信支付:API v3 Postman脚本使用指南

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码