c#打开浏览器并全屏(C打开谷歌浏览器)
首发

c#打开浏览器并全屏(C打开谷歌浏览器)

优质

文章目录[隐藏]

请用语音读文章

基于C#.NET+Phantomjs+Sellenium的高级网络爬虫程序。可执行javascript代码、触发各类事件、操纵页面Dom结构、甚至可以移除不喜欢的css样式。

很多网站都用Ajax动态加载、翻页。比如携程网的评论数据。如果是用之前那个简单的爬虫。是很难直接抓取到所有评论数据的。我们需要去分析那漫天的Javascript代码寻找API数据接口。还要时刻提防对方增加数据陷阱或修改API接口地。

如果通过高级爬虫。就可以完全无视这些问题。无论他们如何加密Javascript代码来隐藏API接口。最终的数据都必要呈现在网站页面上的Dom结构中。不然普通用户也就没法看到了。所以我们可以完全不分析API数据接口。直接从Dom中提取数据。甚至都不需要写那复杂的正则表达式。

主要特性

  • 支持Ajax请求事件的触发及捕获;

  • 支持异步并发抓取;

  • 支持自动事件通知;

  • 支持代理切换;

  • 支持操作Cookies;

运行截图

  • 抓取酒店数据

  • 抓取评论数据

示例代码

///<summary>
///抓取酒店评论
///</summary>
	staticvoidMain(string[]args)
{
varhotelUrl="http://hotels.ctrip.com/hotel/434938.html";
varhotelCrawler=newStrongCrawler();
hotelCrawler.OnStart+=(s,e)=>
{
Console.WriteLine("爬虫开始抓取地址:"+e.Uri.ToString());
};
hotelCrawler.OnError+=(s,e)=>
{
Console.WriteLine("爬虫抓取出现错误:"+e.Uri.ToString()+"。异常消息:"+e.Exception.ToString());
};
hotelCrawler.OnCompleted+=(s,e)=>
{
HotelCrawler(e);
};
varoperation=newOperation
{
Action=(x)=>{
//通过Selenium驱动点击页面的“酒店评论”
x.FindElement(By.XPath("//*[@id='commentTab']")).Click();
},
Condition=(x)=>{
//判断Ajax评论内容是否已经加载成功
returnx.FindElement(By.XPath("//*[@id='commentList']")).Displayed&&x.FindElement(By.XPath("//*[@id='hotel_info_comment']/div[@id='commentList']")).Displayed&&!x.FindElement(By.XPath("//*[@id='hotel_info_comment']/div[@id='commentList']")).Text.Contains("点评载入中");
},
Timeout=5000
};

hotelCrawler.Start(newUri(hotelUrl),null,operation);//不操作JS先将参数设置为NULL

Console.ReadKey();
}

github:https://github.com/microfisher/Strong-Web-Crawler

以上就是由优质生活领域创作者 生活常识网 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

世界十大乒乓球运动员排行(最伟大的乒乓球运动员排名)

请用语音读文章东京奥运会乒乓比赛岛国小动作不停乒乓球是世界上最受欢迎的室内健身项[&...

手术后的说说感慨大全(自己手术后的心情说说)

请用语音读文章  1、自己把自己送上手术台的心情。我这个强韧的小心脏。辛苦。辛苦了[...

灵活就业人员退休待遇和职工一样吗(企业职工和灵活就业人员)

请用语音读文章灵活就业人员交够社保的缴费年限。退休时可以领多少钱?那么首先我们需[&...

两栖动物有哪些特征(第五节两栖动物和爬行动物.ppt)

请用语音读文章小小的埃氏剑螈(学名:Ensatinaeschscholtzii[&h...

发表评论

您的电子邮箱地址不会被公开。