c#使用OpenQA.Selenium和Chromedriver采集数据

 更新时间:2019年10月30日 14:34  点击:883

之前 在公司业务中用过java+Selenium+ChromeDriver ,使用起来非常顺手,可以完美模拟真实的用户浏览行为。最近休息的时候想用C#也试一下,于是有了本文。   实现原理一样,只是由java换成了C#。(ps:个人感觉就业务开发代码来说,熟悉之后两种语言可以无缝切换。)

using System;
//添加selenium的引用
using OpenQA.Selenium.PhantomJS;
using OpenQA.Selenium.Chrome;
 
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium;
//添加引用-在程序集中添加System.Drawing
using System.IO;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string baitai_id="006";
            string word = "python";
            string savepath = "666.html";
          var getsource=SearchYahoo(savepath,word, baitai_id);
        }
         
         public static string SearchYahoo(string SavePath,string word,string baitai_id)
        {
            ChromeOptions options = new ChromeOptions();
            //Set the http proxy value, host and port.
            //Set the proxy to the Chrome options
            var proxy = new Proxy();
            proxy.Kind = ProxyKind.Manual;
            proxy.IsAutoDetect = false;
            proxy.HttpProxy = "localhost:8080";
            proxy.SslProxy = "localhost:8080";
            options.Proxy = proxy;
 
            options.AddArgument("ignore-certificate-errors");
            //options.AddArgument("--headless");
            options.AddArgument("--disable-gpu");
            string ua = null;
            string url = @"https://search.yahoo.co.jp/";
            var spua = "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25";
            var pcua = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36";
 
 
            switch (baitai_id)
            {
                case "002":
                    ua = pcua;
                    url = @"https://www.yahoo.co.jp/";
                    break;
                case "004":
                    ua = spua;
                    break;
                case "006":
                    ua = spua;
                    break;
                default:
                    break;
            }
 
            options.AddArgument(string.Format("--user-agent={0}", ua));
            List<String> tagNmaeList = new List<string>(); ;
            var driver = new ChromeDriver(options);             
            string Source=null;
            try
            {
 
 
                //002的换用另外程序
                driver.Navigate().GoToUrl(url);
                var inputNode = driver.FindElementByXPath(@"//input[@name='p']");
                Thread.Sleep(3000);
                inputNode.SendKeys(word);
                var search = driver.FindElementByXPath(@"//input[@type='submit']");
                Thread.Sleep(2000);
                search.Click();
                Thread.Sleep(5000);
                Source = driver.PageSource;
                 
 
            }
            catch (Exception ex)
            {
                
                
            }
            finally
            {
               // driver.Close();
               
                driver.Quit();
                
             
            }
            System.IO.File.WriteAllText(SavePath, Source, System.Text.Encoding.UTF8);
            return Source;
 
 
        }
    }
 
     
}


[!--infotagslink--]

相关文章

  • selenium 反爬虫之跳过淘宝滑块验证功能的实现代码

    这篇文章主要介绍了selenium 反爬虫之跳过淘宝滑块验证功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-27
  • Python爬虫之Selenium实现关闭浏览器

    这篇文章主要介绍了Python爬虫之Selenium实现关闭浏览器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-04
  • c# Selenium爬取数据时防止webdriver封爬虫的方法

    这篇文章主要介绍了c# Selenium爬取数据时防止webdriver封爬虫的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-15
  • python自动化测试selenium执行js脚本实现示例

    这篇文章主要为大家介绍了python自动化测试selenium执行js脚本的实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...2021-11-13
  • Python Selenium操作Cookie的实例方法

    在本篇文章里小编给大家整理的是一篇关于Python Selenium操作Cookie的实例方法,有需要的朋友们可以学习参考下。...2021-02-28
  • python编程使用selenium编写测试用例

    这篇文章主要为大家介绍了在python编程学习中如何使用selenium来编写测试用例,文中给出了详细的测试用例代码,有需要的朋友可以借鉴参考下...2021-10-09
  • C#使用Selenium的实现代码

    这篇文章主要介绍了C#使用Selenium的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • Python selenium 自动化脚本打包成一个exe文件(推荐)

    这篇文章主要介绍了Python selenium 自动化脚本打包成一个exe文件,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-04-27
  • Python中Selenium对Cookie的操作方法

    Cookie内记录用户名和密码(加密)信息,只要请求时服务器收到Cookie,识别成功,默认为已登陆,今天通过本文给大家分享Selenium对Cookie的操作方法,感兴趣的朋友一起看看吧...2021-07-09
  • 详解Python 使用 selenium 进行自动化测试或者协助日常工作

    这篇文章主要介绍了Python 使用 selenium 进行自动化测试 或者协助日常工作,我们可以使用 selenium 来帮助我们进行自动化的 Web 测试,也可以通过 selenium 操作浏览器做一些重复的,简单的事情,来减轻我们的工作...2021-09-30
  • 教你怎么用python selenium实现自动化测试

    今天带大家学习怎么用python selenium实现自动化测试,文中有非常详细的介绍及代码示例,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下...2021-05-28
  • Python selenium 实例之通过 selenium 查询禅道是否有任务或者BUG

    这篇文章主要介绍了Python selenium 实例之通过 selenium 查询禅道是否有任务或者BUG的相关资料,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-30
  • python3.8.1+selenium实现登录滑块验证功能

    这篇文章主要介绍了python3.8.1+selenium解决登录滑块验证的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-22
  • Python selenium使用autoIT上传附件过程详解

    这篇文章主要介绍了Python selenium使用autoIT上传附件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-27
  • C# 利用Selenium实现浏览器自动化操作的示例代码

    这篇文章主要介绍了C# 利用Selenium实现浏览器自动化操作,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2020-11-03
  • selenium+超级鹰实现模拟登录12306

    这篇文章主要介绍了selenium+超级鹰实现模拟登录12306,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-25
  • selenium 多窗口切换的实现(windows)

    这篇文章主要介绍了selenium 多窗口切换的实现(windows),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-22
  • python自动化测试selenium定位frame及iframe示例

    这篇文章主要为大家介绍了python自动化测试selenium定位frame及iframe示例的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助...2021-11-13
  • scrapy利用selenium爬取豆瓣阅读的全步骤

    这篇文章主要给大家介绍了关于scrapy利用selenium爬取豆瓣阅读的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-21
  • 基于python+selenium的二次封装的实现

    这篇文章主要介绍了基于python+selenium的二次封装的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-30