C#(csharp)用CefSharp开发实现一个浏览器,抓取网站任意资源

共 2342字,需浏览 5分钟

 ·

2020-12-04 15:09





前言:



不少网站会保护自己,防止别人下载图片。


因此下载器,先后改了好几次,不断技术升级。




早期 用WebClient 下载 HTML 分析 URL 下载。


后来 为了下载 手机网站的图片,用上了 User-Agent 特性,模拟手机浏览器。




之前遇到一个复杂些的 网站M ,页面用 JS 加载生成。无法直接获得HTML。


用Chrome一番分析后,发现其图片地址 有固定格式。文件名是 3位数数字,从1开始累加。


因此只要在浏览器 取到第一个图,后面的图片URL 生成下 也得到了。批量下载搞定。




前段时间 网站M 升级。图片展示使用 HTML5 canavs 显示,而且 图片路径 也加随机字符。难以生成了。


对于Chrome来说依然没有遮挡效果。依然可以取到 URL,可以手工保存图片, 然而 无法批量下载了。




问题来了:


无法取到 HTML分析出 图片路径,而且路径名称随机。那么如何批量下载图片?


既然 图片展示到我们面前,数据必然也已经到了 我们这边,就看我们这么取得了。




解决办法:


WebClient不行,于是想到了  Winform 的 WebBrowser 实现浏览器,能显示必然能取到数据。


WebBrowser对于大部分网站还是可以的。然而对于 HTML5的 或者 新特性的 网站就有些 不方便了。有时候不能正常显示网站。例如,网站M.


它依赖 操作系统的 IE浏览器,而且默认是系统里老版本的 IE。可能是 IE7 吧。


一番资料查找 发现CefSharp。这个是Chrome 的另一个开源项目, C# 调用。可以在Winform,Wpf 等中 嵌入浏览器。




CefSharp在网上有一些资料,不多。为了弄明白CefSharp里 取得 图片URL,图片数据。花了一番功夫,查资料,看源码。


倾情大放送,来一大波代码:




开发环境:VS2015  framework 4.5.2  x86模式   CefSharp 63.0.30 


winform:











有了上面的代码,便可以获取到 目标网站的 任意资源了。
















END








一些推荐





  1. 【开源Blazor控件库】点击浏览





  2. 【开源B/S项目】WTM





  3. 【开源WPF控件库】点击浏览





  4. 【开源WPF项目】点击浏览





  5. 【开源Xamarin项目】全球优秀Xamarin.Forms项目收集





  6. 【开源Winform控件库】HZHControlsSunnyUI





  7. 【开源Winform项目】SiMay远程控制管理系统





  8. 【开源Qt控件库】QWidgetDemoMaterial风格的Qt控件





  9. 【开源Qt项目】点击浏览





  10. 【更多分享】点击浏览






资源分享





  • 回复数字【01】:获取DotNet技术资料



  • 回复数字【02】:获取Java技术资料



  • 回复数字【03】:获取Android技术资料



  • 回复数字【04】:获取C++技术资料



  • 回复数字【05】:获取Qt技术资料



  • 回复数字【06】:获取React资源



  • 添加号主微信号【dotnet9】:备注【入群】加入与大佬们的技术交流






时间如流水,只能流去不流回。





  • 公众号:Dotnet9



  • 号主微信号:dotnet9



  • 文本转自公众号:新阁Net社群



  • 原文地址:https://mp.weixin.qq.com/s/724zSH1_ZwY3BhY2pywoIw



  • 编辑:沙漠之尽头的狼



  • 日期:2020-12-04




微信公众号:Dotnet9





-好东西要转发,设为"星标"★抢先看-

点击阅读原文,关注Dotnet9更多好文。



浏览 21
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报