基于c#.net+phantomjs+llenium的高级网络爬虫程序。可执行javascript代码、触发各类事件、操纵页面dom结构、甚至可以移除不喜欢的css样式。
很多网站都用ajax动态加载、翻页,比如携程网的评论数植物保护专业据。如果是用之前那个简单的爬虫,是很难直接抓取到所有评论数据的,我们需要去分析那漫天的javascript代码寻找api数据接口,还要时刻提防对方增加数据陷阱或修改api接口地。
如果通过高级爬虫,就可以完全无视这些问题,无论他们如何加密javascript代码来隐藏api接口,最终的数据都必要呈现在网站页面上的dom结构中,不然普通用户也就没法看到了。所以我们可以完全不分析湖北工业大学是211吗api数据接口,直接从dom中提取数据,甚至都不需要写那复杂的正则表达式。
/// <summary> /// 抓取酒店评论 /// </su铁与稀盐酸反应mmary>static void main(string[] args) { var hotelurl = "/d/file/titlepic/434938.html%22; 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) => { //通过lenium驱动点击页面的“酒店评论” 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
本文发布于:2023-04-05 05:56:30,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/543454c7dff1ca3b7f48d649c6029595.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:c#打开浏览器并全屏(运行打开浏览器命令).doc
本文 PDF 下载地址:c#打开浏览器并全屏(运行打开浏览器命令).pdf
留言与评论(共有 0 条评论) |