# 基于浏览器内核的高级爬虫
基于C#.NET+PhantomJS+Sellenium的高级网络爬虫程序。可执行Javascript代码、触发各类事件、操纵页面Dom结构、甚至可以移除不喜欢的CSS样式。
很多网站都用Ajax动态加载、翻页,比如携程网的评论数据。如果是用之前那个简单的爬虫,是很难直接抓取到所有评论数据的,我们需要去分析那漫天的Javascript代码寻找API数据接口,还要时刻提防对方增加数据陷阱或修改API接口地。
如果通过高级爬虫,就可以完全无视这些问题,无论他们如何加密Javascript代码来隐藏API接口,最终的数据都必要呈现在网站页面上的Dom结构中,不然普通用户也就没法看到了。所以我们可以完全不分析API数据接口,直接从Dom中提取数据,甚至都不需要写那复杂的正则表达式。
### 主要特性
- 支持Ajax请求事件的触发及捕获;
- 支持异步并发抓取;
- 支持自动事件通知;
- 支持代理切换;
- 支持操作Cookies;
### 运行截图
- 抓取酒店数据
![抓取酒店数据](https://github.com/coldicelion/Strong-Web-Crawler/blob/master/Wesley.Crawler.StrongCrawler/Resources/%E9%85%92%E5%BA%97%E8%AF%84%E8%AE%BA1.PNG)
- 抓取评论数据
![抓取酒店评论](
https://github.com/coldicelion/Strong-Web-Crawler/blob/master/Wesley.Crawler.StrongCrawler/Resources/%E9%85%92%E5%BA%97%E8%AF%84%E8%AE%BA2.PNG)
### 示例代码
/// <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();
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于C#.NET+PhantomJS+Sellenium的高级网络爬虫程序。可执行Javascript代码、触发各类事件、操纵页面Dom结构。.zip (43个子文件)
Strong-Web-Crawler-master
.gitattributes 28B
Wesley.Crawler.StrongCrawler
Wesley.Crawler.StrongCrawler.csproj 4KB
Events
OnStopEventArgs.cs 223B
OnErrorEventArgs.cs 445B
OnCompletedEventArgs.cs 976B
OnStartEventArgs.cs 425B
StrongCrawler.cs 4KB
App.config 184B
Operation.cs 386B
obj
Debug
Wesley.Crawler.StrongCrawler.exe 18KB
TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs 0B
TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs 0B
Wesley.Crawler.StrongCrawler.pdb 34KB
DesignTimeResolveAssemblyReferencesInput.cache 7KB
Wesley.Crawler.StrongCrawler.csproj.FileListAbsolute.txt 2KB
TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs 0B
Libraies
WebDriver.dll 1.51MB
WebDriver.Support.dll 55KB
Selenium.WebDriverBackedSelenium.dll 661KB
ThoughtWorks.Selenium.Core.dll 28KB
ICrawler.cs 630B
bin
Debug
Wesley.Crawler.StrongCrawler.exe 18KB
WebDriver.dll 1.51MB
Wesley.Crawler.StrongCrawler.pdb 34KB
cc.html 391KB
Wesley.Crawler.StrongCrawler.vshost.exe 22KB
WebDriver.Support.dll 55KB
phantomjs.exe 17.73MB
Selenium.WebDriverBackedSelenium.dll 661KB
ThoughtWorks.Selenium.Core.dll 28KB
Wesley.Crawler.StrongCrawler.exe.config 184B
Wesley.Crawler.StrongCrawler.vshost.exe.config 184B
cc1.html 458KB
Properties
AssemblyInfo.cs 1KB
Program.cs 5KB
Resources
酒店评论2.PNG 19KB
酒店评论1.PNG 21KB
Wesley.Crawler.StrongCrawler.csproj.user 223B
Models
Hotel.cs 291B
Script.cs 283B
StrongCrawler.sln 1KB
README.md 3KB
项目授权码.txt 268B
共 43 条
- 1
资源评论
不走小道
- 粉丝: 3205
- 资源: 5122
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功