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; } } }
相关文章
- 这篇文章主要介绍了selenium 反爬虫之跳过淘宝滑块验证功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-27
- 这篇文章主要介绍了Python爬虫之Selenium实现关闭浏览器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-04
c# Selenium爬取数据时防止webdriver封爬虫的方法
这篇文章主要介绍了c# Selenium爬取数据时防止webdriver封爬虫的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-15- 这篇文章主要为大家介绍了python自动化测试selenium执行js脚本的实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...2021-11-13
- 在本篇文章里小编给大家整理的是一篇关于Python Selenium操作Cookie的实例方法,有需要的朋友们可以学习参考下。...2021-02-28
- 这篇文章主要为大家介绍了在python编程学习中如何使用selenium来编写测试用例,文中给出了详细的测试用例代码,有需要的朋友可以借鉴参考下...2021-10-09
- 这篇文章主要介绍了C#使用Selenium的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
Python selenium 自动化脚本打包成一个exe文件(推荐)
这篇文章主要介绍了Python selenium 自动化脚本打包成一个exe文件,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-04-27- Cookie内记录用户名和密码(加密)信息,只要请求时服务器收到Cookie,识别成功,默认为已登陆,今天通过本文给大家分享Selenium对Cookie的操作方法,感兴趣的朋友一起看看吧...2021-07-09
详解Python 使用 selenium 进行自动化测试或者协助日常工作
这篇文章主要介绍了Python 使用 selenium 进行自动化测试 或者协助日常工作,我们可以使用 selenium 来帮助我们进行自动化的 Web 测试,也可以通过 selenium 操作浏览器做一些重复的,简单的事情,来减轻我们的工作...2021-09-30- 今天带大家学习怎么用python selenium实现自动化测试,文中有非常详细的介绍及代码示例,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下...2021-05-28
Python selenium 实例之通过 selenium 查询禅道是否有任务或者BUG
这篇文章主要介绍了Python selenium 实例之通过 selenium 查询禅道是否有任务或者BUG的相关资料,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-30python3.8.1+selenium实现登录滑块验证功能
这篇文章主要介绍了python3.8.1+selenium解决登录滑块验证的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-22Python selenium使用autoIT上传附件过程详解
这篇文章主要介绍了Python selenium使用autoIT上传附件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-27- 这篇文章主要介绍了C# 利用Selenium实现浏览器自动化操作,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2020-11-03
- 这篇文章主要介绍了selenium+超级鹰实现模拟登录12306,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-25
- 这篇文章主要介绍了selenium 多窗口切换的实现(windows),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-22
python自动化测试selenium定位frame及iframe示例
这篇文章主要为大家介绍了python自动化测试selenium定位frame及iframe示例的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助...2021-11-13- 这篇文章主要给大家介绍了关于scrapy利用selenium爬取豆瓣阅读的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-21
- 这篇文章主要介绍了基于python+selenium的二次封装的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-30