c#打开浏览器并全屏(设置ie浏览器打开全屏)
基于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']/div[@id='commentList']")).Displayed && !x.FindElement(By.XPath("//*[@id='hotel_info_comment']/div[@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
标签: 浏览器
- 随机文章
- 热门文章
- 热评文章
- 状态栏歌词 v2.1.0去广告清爽版
- qBittorrent v4.4.3.10增强便携版
- Adobe Bridge 2022 v12.0.2.252
- 抖音直播运营是做什么的 抖音直播运营主要做什么
- 抖音视频怎么推广 抖音视频怎么推广宣传
- 抖音短视频怎么赚钱 抖音短视频赚钱方式介绍
- 免费测个人婚因不付费(免费测自己有几次婚姻)
- Etsy卖家必须30天内验证银行账户信息吗?怎么做?
扫描二维码推送至手机访问。
版权声明:本文中部分文字、图片、音频、视频来源于互联网及公开渠道,仅供学习参考,版权归原创者所有! 如侵犯到您的权益,请及时通知我们!我们将在第一时间内删除。


赣公网安备36070302361030号