当前位置:首页 > 生活百科

c#打开浏览器并全屏(运行打开浏览器命令)

栏目:生活百科日期:2025-03-27浏览:0

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

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

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

主要特性

支持Ajax请求事件的触发及捕获;支持异步并发抓取;支持自动事件通知;支持代理切换;支持操作Cookies;

运行截图

抓取酒店数据抓取评论数据

示例代码

 /// &<summary&>    /// 抓取酒店评论    /// &</summary&>static void Main(string&[] args)    {        var hotelUrl = "http://hotels.ctrip.com/hotel/434938.html";        var hotelCrawler = new StrongCrawler();        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);        };        var operation = new Operation        {            Action = (x) =&> {                //通过Selenium驱动点击页面的“酒店评论”                x.FindElement(By.XPath("//*&[@id='commentTab']")).Click();            },            Condition = (x) =&> {                //判断Ajax评论内容是否已经加载成功                return x.FindElement(By.XPath("//*&[@id='commentList']")).Displayed &&&& x.FindElement(By.XPath("//*&[@id='hotel_info_comment']/p&[@id='commentList']")).Displayed &&&& !x.FindElement(By.XPath("//*&[@id='hotel_info_comment']/p&[@id='commentList']")).Text.Contains("点评载入中");            },            Timeout = 5000        };        hotelCrawler.Start(new Uri(hotelUrl), null, operation);//不操作JS先将参数设置为NULL        Console.ReadKey();    }github:https://github.com/microfisher/Strong-Web-Crawler

“c#打开浏览器并全屏(运行打开浏览器命令)” 的相关文章

eclipse搜索文件名快捷键(mysqlworkbench使用教程)

Java开发,在使用Eclipse开发代码过程用到的小技巧,各种功能配置的使用,可以有效提高使用舒适度和开发效率,可以在平常开发中节约出很多时间,下面Java专...

ems是哪家快递快吗(简介ems快递公司及寄件费)

国家邮政局14日举行一季度例行新闻发布会,发布2020年快递服务满意度调查和时限测试结果。受疫情影响,2020年,全国重点地区快递服务全程时限为58.23小时,...

icloud怎么恢复备份,还原icloud照片的方法

苹果iCloud照片怎么恢复?相信很多使用苹果手机的小伙伴对于iCloud还不是很熟悉,甚至有的小伙伴用了很久的iPhone手机却还不知道iCloud是什么,其...

叶公好龙是什么意思解释(详解叶公好龙故事及其深意)

【叶公好龙的意思】叶公好龙是一个成语。叶,旧读shè。汉·刘向《新序·杂事五》:“叶公子高好龙,钩以写龙,凿以写龙,屋室雕文以写龙。于是天龙闻而下之,窥头于牖,...

人才市场找工作靠谱吗,揭秘人才市场的套路

阿飞的家乡是个国内有名的旅游养生地,游客和养生爱好者常年络绎不绝,不知不觉,这个边陲小城的房价就突破了五位数。可是除了房地产,这里没有其他任何产业。有钱的外地人...

matlab直线拟合函数(线性拟合matlab编程)

上次讨论了基于Hopfield神经网络的数字识别,BP(BackPropagation)神经网络也可以进行相关的数字识别如手写数字识别等,由于BP神经网络的特性...

google关键字推广怎么做,如何选择合适的关键字匹配

谷歌推广中,关键词的匹配类型至关重要,匹配太广泛就浪费费用,匹配太绝对,又没什么流量,词组匹配也会带来不必要的点击,那么到底怎么办呢?GoogleAds推广中如...

post在线请求工具(教你手机模拟post请求)

Get和Post是什么?HTTP定义了与服务器交互的不同方法,最常用的方法有四种Put,Delete、post,get,即增删改查。1.Get,它用于获取信息,...

2019VIP营销策划培训课程免费分享(品牌营销策划方案)

年度营销新增长战略就是方向:先胜再战品牌就是空军:抢占心智销售就是陆军:攻城略地运营就是裂变:客多买多服务就是情感:好好好好年度营销新增长=战略+品牌+销售+运...

如何做网络营销推广,网络推广三种营销方式

seo是进行网站排名优化的一种技术,也是网络运营推广的一种有效方法。很多从事cpa推广的站长渠道都会采用这种方法来进行自己网站的优化,但是往往很多新站长因为对于...