我们网站有一个“日志聚合”的功能,可以导入用户自己其他博客的文章,文字可以保存到数据库,图片没有存储而是直接引用原图片地址,而大部分图片都做了防盗链处理,为了能保证用户正常浏览,对抓取后的图片地址做了引用处理。
办法很多,参考鲜果和GoogleReader的方式,实际上就是通过伪装Referer信息来实现,这种方式的代码量以及图片下载响应速度的效果是最好的,还有用WebRequest和Iframe的方式也都可以达到我们的目的。
效果对比
图(1)采用“伪装Referer”的方式
图(2)采用"WebRequest"的方式
核心代码
1.伪装Referer方式
01 |
MSXML2.XMLHTTPClass oxmlHttp = new MSXML2.XMLHTTPClass(); |
03 |
oxmlHttp.open( "Get" , url, false , null , null ); |
04 |
oxmlHttp.setRequestHeader( "Referer" , url); |
07 |
if (oxmlHttp.readyState == 4 && oxmlHttp.status == 200) |
09 |
return (Byte[])oxmlHttp.responseBody; |
2.WebRequest方式
1 |
WebRequest request = WebRequest.Create(url); |
2 |
WebResponse response = request.GetResponse(); |
3 |
Stream reader = response.GetResponseStream(); |
3.Iframe方式
1 |
< script >var im = "< img src = "图片URL" />";</ script > |
3 |
< iframe id = "im" style = "border: 0px; overflow: hidden;" scrolling = "no" frameborder = "0" src = "javascript:parent.im;" onload = "javascript:var x=document.getElementById('im').contentWindow.document.images[0];this.width=x.width+10;this.height=x.height+10;" ></ iframe > |
总结
一开始使用的是WebRequest的方式,将获取到的内容写入到MemoryStream中,再输出到页面,但是速度从上面图(2)可见,而且对于BlogBus会返回505的错误。如果有空会再次研究一下这种方式为什么这么慢,瓶颈在哪儿。
使用XMLHTTPClass的方式,注意要返回的属性是responseBody,常见的抓取文本返回的属性是responseText,因为没有注意这个细节,导致始终无法输出图片,关于该类的说明,参考了博客园“一个呆子”同学的文章。网上有一些ASP和PHP的版本,差不多都是用的这种方式。当然这两种方式的代码不仅仅可以做这些,还可以做更多事情。
分享到:
相关推荐
在VB(Visual Basic)编程中,访问远程防盗链图片并显示是一项常见的需求,尤其是在开发网页浏览器、信息抓取或者图像处理应用时。防盗链是一种防止他人盗用网站资源的技术,通常通过检查HTTP请求头中的Referer字段...
ImageBox 不仅仅是把图像文件打包进.EXE文件中并且连续的显示他们。相反的,程序可以添加注解、播放背景音乐、显示字幕...1、支持防盗链图片抓取。 2、支持将抓取的图片即时浏览。 3、支持图片自动存储到自已的邮箱中。
遇到这种问题是因为微信公众平台对图片采用了防盗链设置,微信对外提供了API接口,让我们可以通过授权的方式获取到自己公众号里面的文章,或者你也可以通过爬虫去抓取微信的文章,但是微信的图片默认是不允许外部...
在使用苹果CMS的过程中,有时用户会遇到一个问题,即视频相关的图片无法正常显示。这个问题通常是由于系统缺少关键的PHP脚本文件导致的,具体来说,就是“tu.php”文件。本文将详细解释这个问题的成因、解决方案以及...
1. **图片防盗链**:通过设置服务器配置或插件,阻止外部网站直接引用DISCUZ论坛内的图片,只允许论坛内的用户查看。 2. **会员权限控制**:只有注册并登录的用户才能查看图片,未登录用户只能看到预览图或者提示...
3. 添加天涯论坛防盗链图片下载支持。 UI Design: 1. 智能判断当前Windows系统版本,若是Windows7,则开启透明特效窗体,其他版本的Windows则调用普通非透明窗体。 2. 主界面进度条和任务栏动态显示下载进度(抓取...
3. 添加天涯论坛防盗链图片下载支持。 Important updates in update 1: 新增选项,可智能抓取百度贴吧帖子中的图片对应的高质量原图。 Features: 1. 从指定网页以及符合所设定的正则表达式匹配规则的二级页面中...
5. 图片防盗链:防止其他网站直接引用博客中的图片资源。 总的来说,"基于ASP的蓝雨博客(加入防盗处理 )"是一个完整的Web应用程序,利用ASP技术实现动态内容生成,并通过防盗处理来保护博主的知识产权。开发者或...
通过这样的方法,即使目标网站的图片有防盗链保护,你也可以安全地将图片保存到自己的服务器,确保在自己的网站上能够正常显示。这个教程涵盖了PHP远程图片采集的基本原理和实践操作,帮助开发者实现高效的数据抓取...
1. **网页防盗链(Referrer Check)**: 网页防盗链是基于HTTP头部的"Referer"字段进行检查的一种方法。当用户从其他网站点击链接访问你的网站时,浏览器会发送Referer信息。通过检查这个信息,服务器可以判断请求...
- `.htaccess`:这是一个Apache服务器配置文件,用于控制网站的访问权限、URL重写、防盗链等。 - `favicon.ico`:网站的图标,通常显示在浏览器的地址栏或收藏夹中。 - `login.php`:登录页面,用户可以输入...
独有的完整HTTP请求包和响应包抓取分析功能,打造的就是超强的防盗链下载功能和精准的真实文件类型自动识别功能。独有的疑难网址下载功能,真正将所有网络资源一网打尽。 完全支持所有flv视频网站的下载、所有DJ...
- `.htaccess`:用于配置服务器,通常包含重定向规则、URL美化、防盗链等设置。 - `favicon.ico`:网站的图标,显示在浏览器地址栏和书签中。 - `robots.txt`:指示搜索引擎爬虫哪些页面可以抓取,哪些禁止抓取。...
4. **安全保护**:提供防盗链机制,防止他人未经许可盗用图片。 5. **统计分析**:可以统计图片的访问量,帮助了解图片的受欢迎程度。 6. **版本控制**:允许用户保存图片的不同版本,便于管理和回溯。 7. **CDN加速...
2. `.htaccess`:这是一个Apache服务器的配置文件,用来控制目录级别的访问权限,实现URL重写、防盗链、限制访问等功能,对于优化网站SEO和提升安全性至关重要。 3. `favicon.ico`:这是网站的图标,通常显示在...
2. `.htaccess`:这是一个Apache服务器的配置文件,常用于URL重写、防盗链、限制访问等。在响应式网站中,它可能被用来隐藏或者美化URL,提升用户体验。 3. `api.php`:这是一个PHP接口文件,通常用于与后端数据库...
1. `.htaccess` - 这是一个服务器配置文件,常用于设置重定向、URL美化、防盗链、限制访问等,以优化网站性能和安全。 2. `favicon.ico` - 网站的图标,通常出现在浏览器的地址栏和书签中,有助于提升网站识别度。 3...
1. `.htaccess`:这是一个Apache服务器配置文件,用于设置网站的访问权限、URL重写、防盗链等高级设置。通过`.htaccess`,用户可以控制网站的SEO优化,如设置301重定向,防止目录浏览,或者限制某些IP的访问。 2. `...
2. `root.htaccess`:这是一个Apache服务器的配置文件,用于设置URL重写、防盗链、错误页面等高级功能,对优化SEO(搜索引擎优化)有重要作用。 3. `passport_client.php`:可能是ShopEx的用户认证组件,负责处理...
1. `.htaccess`:这是一个Apache服务器配置文件,用于设置URL重写、防盗链、限制访问等高级功能,确保网站的安全性和性能优化。 2. `说明.htm`:通常包含源码的安装指南、使用说明和版权信息,帮助用户理解和操作...