用javascript解决外部数据抓取中的乱码问题_应用技巧

我们一般会在两个地方用到外部数据抓取,一个是在asp中,一个是在hta中。如果外部数据是gb2312编码的,就涉及到转码的问题,但是传统的用vbs函数进行处理的方法,运算量比较大,有些特殊字符还会出错。
    如果用adodb.stream控件来进行转码,就简单多了,不需要借助vbs的二进制处理函数了,同时速度快了很多。

复制代码 代码如下:

<script> 
function loadData(sUrl){ 
    var xh 
    xh=new ActiveXObject("Microsoft.XMLHTTP") 
    xh.open("GET",sUrl,false) 
    xh.send(null) 
    return gb2utf8(xh.responseBody) 

function gb2utf8(sData){ 
    var oStream 
    oStream=new ActiveXObject("adodb"+".stream")  
    oStream.Type=1  
    oStream.Mode=3  
    oStream.Open  
    oStream.Write(sData) 
    oStream.Position=0  
    oStream.Type=2  
    oStream.Charset="GB2312" 
    return oStream.ReadText() 

</script>  

时间: 2024-10-28 18:21:06

用javascript解决外部数据抓取中的乱码问题_应用技巧的相关文章

用javascript解决外部数据抓取中的乱码问题

我们一般会在两个地方用到外部数据抓取,一个是在asp中,一个是在hta中.如果外部数据是gb2312编码的,就涉及到转码的问题,但是传统的用vbs函数进行处理的方法,运算量比较大,有些特殊字符还会出错.     如果用adodb.stream控件来进行转码,就简单多了,不需要借助vbs的二进制处理函数了,同时速度快了很多. 复制代码 代码如下: <script>  function loadData(sUrl){      var xh      xh=new ActiveXObject(&q

如何解决远程页面抓取中的乱码问题

解决|问题|页面 由于平时使用的网页文件基本上都是gb2312编码方式,如果通过xmlhttp控件读取的话,肯定会出现乱码问题,但是要把所有文件都改成utf-8编码,操作上比较麻烦.经过反复比较,我找到了相对实用的解决方法. ff提供了overrideMimeType方法,可以指定返回值的编码,所以解决起来比较简单,只要把这个方法指向gb2312就可以了.对于IE,可以用vbs配合来作编码转换,用gb2utf8来转换接收到的二进制数据,其中利用到execScript方法来调用vbs的函数. [复

如何解决远程页面抓取中的乱码问题_AJAX相关

由于平时使用的网页文件基本上都是gb2312编码方式,如果通过xmlhttp控件读取的话,肯定会出现乱码问题,但是要把所有文件都改成utf-8编码,操作上比较麻烦.经过反复比较,我找到了相对实用的解决方法. ff提供了overrideMimeType方法,可以指定返回值的编码,所以解决起来比较简单,只要把这个方法指向gb2312就可以了.对于IE,可以用vbs配合来作编码转换,用gb2utf8来转换接收到的二进制数据,其中利用到execScript方法来调用vbs的函数. 复制代码 代码如下:

PHP中使用file_get_contents抓取网页中文乱码问题解决方法_php技巧

本文实例讲述了PHP中使用file_get_contents抓取网页中文乱码问题解决方法.分享给大家供大家参考.具体方法如下: file_get_contents函数本来就是一个非常优秀的php自带本地与远程文件操作函数,它可以让我们不花吹挥之力把远程数据直接下载,但我在使用它读取网页时会碰到有些页面是乱码了,这里就来给各位总结具体的解决办法. 根据网上有朋友介绍说原因可能是服务器开了GZIP压缩,下面是用firebug查看我的网站的头信息,Gzip是开了的,请求头信息原始头信息,代码如下: 复

ASP.NET抓取网页内容的实现方法_实用技巧

本文实例讲述了ASP.NET抓取网页内容的实现方法.分享给大家供大家参考.具体实现方法如下: 一.ASP.NET 使用HttpWebRequest抓取网页内容 复制代码 代码如下: /// <summary>方法一:比较推荐  /// 用HttpWebRequest取得网页源码  /// 对于带BOM的网页很有效,不管是什么编码都能正确识别  /// </summary>  /// <param name="url">网页地址" </

在Python3中使用asyncio库进行快速数据抓取的教程_python

web数据抓取是一个经常在python的讨论中出现的主题.有很多方法可以用来进行web数据抓取,然而其中好像并没有一个最好的办法.有一些如scrapy这样十分成熟的框架,更多的则是像mechanize这样的轻量级库.DIY自己的解决方案同样十分流行:你可以使用requests.beautifulsoup或者pyquery来实现. 方法如此多样的原因在于,数据"抓取"实际上包括很多问题:你不需要使用相同的工具从成千上万的页面中抓取数据,同时使一些Web工作流自动化(例如填一些表单然后取回

数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置

数据抓取是一门艺术,和其他软件不同,世界上不存在完美的.一致的.通用的抓取工具.为了不同的目的,需要定制不同的代码.不过,我们不必Start from Scratch,已经有许多的基本工具.基本方法和基础框架可供使用.不同的工具.不同的方法.不同的框架的特点也不同.了解这些工具.方法和框架是首要任务,接下来就需要明白它们的差异都在哪里.什么情境该用什么东东,最后才是析出规则.编写代码.运行程序来抓取数据.所以说,其实数据抓取的学习路线,不但很长而且很杂.     为了一个特定的目的,我需要爬取G

百万级别知乎用户数据抓取与分析之PHP开发_php实例

这次抓取了110万的用户数据,数据分析结果如下: 开发前的准备 安装Linux系统(Ubuntu14.04),在VMWare虚拟机下安装一个Ubuntu: 安装PHP5.6或以上版本: 安装curl.pcntl扩展. 使用PHP的curl扩展抓取页面数据 PHP的curl扩展是PHP支持的允许你与各种服务器使用各种类型的协议进行连接和通信的库. 本程序是抓取知乎的用户数据,要能访问用户个人页面,需要用户登录后的才能访问.当我们在浏览器的页面中点击一个用户头像链接进入用户个人中心页面的时候,之所以

网站数据抓取之争

对于信息抓取,很多情况下难以通过 版权侵权的角度有效阻止,但是仍然可以选择不正当竞争的角度予以解决文 赵占领4月16日,大众点评网对外宣布:网易于近日上线的移动客户端"饭饭"大量抄袭来自大众点评网的内容(商户信息以及餐厅特色.推荐菜.人均价格等),而这些内容是大众点评网从2003年开始付出了大量的人力.物力以及时间等经济成本创造起来的.大众点评网表示,网易应立即停止抄袭.停止不正当竞争行为,将网易"饭饭"下架,否则大众点评网将对网易采取相关的法律措施.对于大众点评网