用ruby写个网页抓取的小东东,遇到问题:
环境:ubuntu8.04+netbeans6.1+ruby1.8.6
在ruby中使用Net::HTTP.get_response抓取一个GB2312编码的网页后转换成utf8全是乱码,主要代码部分如下
resp=Net::HTTP.get_response(URL,URI)
body=resp.body[0,resp.size-1]
r=Iconv.iconv("UTF-8//IGNORE","GB2312//IGNORE",body)
接下来我要使用r中的内容
但是发现里面的内容全是乱码,直接写入数据库写不进去,提示有非法字符。
如果要抓取的网站的编码是utf-8,不用iconv转换,直接存入数据库,完全正常。
请问:
1、问题出在哪里?是Iconv转换有问题?还是get_response时就要做什么处理?
2、另:ruby直接连接mysql如何指定使用utf-8连接?(非rails)
问题已解决:原来它服务器端采用gzip压缩传输的,客户端gunzip一下就行了。 dbh.query("SET NAMES 'utf8'") 发送给mysql即以utf8连接了
分享到:
- 2008-05-26 16:21
- 浏览 1510
- 评论(2)
- 论坛回复 / 浏览 (0 / 3045)
- 查看更多
相关推荐
这时候需要制定字符串的编码,如果采集网页的编码是gb2312,而我们的数据库是utf-8的,这样不做任何处理直接插入数据库可能会乱码(没测试过,不知道数据库会不会自动转码),我们需要手动将gb2312转换成utf-8。...
此外,使用适当的库和模块(如`chardet`和`BeautifulSoup`),以及确保在读写文件时指定正确的编码,也是解决问题的关键。在实践中,应该养成良好的编码处理习惯,以确保数据的准确性和一致性。
在这个“vc 抓取网页源码实例”中,我们将深入探讨如何使用VS2008进行Unicode工程的开发,解决Unicode与UTF-8编码的转换问题,以及如何避免内存泄露和正确抓取网页内容。 首先,我们要理解Unicode和UTF-8之间的关系...
网页内容通常包含多种字符集,因此在将字节转换为字符串时,需要指定正确的字符编码。在这个例子中,我们使用"UTF-8"编码,这是一种广泛支持的字符编码,能处理大部分网页的字符集。 5. **异常处理**: 网络操作...
解决这个问题的方法是在抓取到数据后,使用iconv-lite库来转换字符编码。iconv-lite是一个纯JavaScript实现的字符集转换库,它支持将Buffer转换成不同编码格式的字符串。 例如,当我们抓取一个使用GB2312编码的网页...
网页源码采集器是用于获取网页内容的重要工具,尤其在处理不同编码格式的网页时,可能会遇到乱码问题。本文将深入探讨如何解决GB2312和UTF-8编码导致的乱码问题,以及如何利用VB编程语言和XMLHTTP组件来实现高效、...
在Nutch中,当它抓取到不同编码格式的网页时,如果没有正确地识别和转换这些编码,就会出现乱码现象。主要涉及以下几个方面: 1. **URL编码**:Nutch在抓取URL时,应考虑URL中可能包含的非ASCII字符。这些字符需要...
总之,解决Python网络爬虫乱码问题需要理解编码原理,正确识别和转换字符编码,同时在代码中做好异常处理,确保在遇到未知编码时也能优雅地处理。通过这些方法,我们可以确保爬取的数据正确无误,避免出现乱码现象。
例如,使用异步请求可以让程序在等待响应时不会阻塞,而编码问题则涉及到字符集的识别和转换。 总结来说,VB获取网页源文件源码的核心是利用`XMLHTTP`对象发送HTTP请求,获取服务器响应,并处理返回的源代码。这是...
Unicode转换工具能帮助解决这些问题,确保数据在不同系统间正确传输和显示。 3. "decode": Decode在编程中通常指解码过程,即将经过编码的数据还原成可读的形式。在Unicode转换中,decode可能是指将使用特定编码...
总之,Tesseract 2.04的DLL文件和英文字符集为开发者提供了高效、便捷的文字识别工具,尤其在处理英文和数字时表现突出。通过深入理解其工作原理和使用方法,我们可以充分利用这一强大的开源资源,解决各种文本识别...
解决方法:确保数据库字符集、JDBC连接以及目标系统都支持正确的字符编码,如UTF-8。 在处理这些问题时,确保遵循最佳实践,如合理规划数据模型、优化SQL查询、监控资源使用情况等。同时,定期升级Streamsets到...
由于网页内容可能包含各种字符集,程序中通过设置响应流的编码方式为"GB2312",来确保正确解析中文字符。编码处理在处理网络数据时非常重要,错误的编码会导致乱码,进而影响数据的正确解析和使用。 3. **网页内容...
在Python编程语言中,处理中文字符集转换是一个常见的需求,特别是在处理中文文本数据时。"Python 繁体中文与简体中文相互转换包"提供了一个便捷的解决方案,包括两个核心文件:`langconv.py`和`zh_wiki.py`。这个...
如果 Fetcher 在处理中文文件名时出现问题,可能需要检查其中的 URL 解析和编码转换逻辑。确保 Fetcher 在发送请求前正确地将中文 URL 转换为 UTF-8 编码格式。 此外,Nutch 还依赖于 HttpClient 库来执行 HTTP ...
对于不同编码的字符集映射问题,上述提到的`varDMap`对象,尽管它可能是由于OCR扫描技术导致识别错误或漏识别,并不直接影响爬虫乱码问题的解决,但其结构示例可能暗示需要对某些编码进行特定的转换,这在处理复杂...
### 使用JavaScript解决外部数据抓取中的乱码问题 在现代Web开发中,经常需要从不同的源获取数据。这些数据可能来自于API、RSS订阅、HTML页面等,并且它们使用的编码方式可能与我们的应用不同,比如常见的GB2312...
问题的核心在于,`crawler4j`在抓取网页内容时,可能无法自动识别或适配网页的实际编码,导致在解析时出现错误。默认情况下,如果HTTP响应中没有指定编码,`crawler4j`可能会将内容视为UTF-8,而实际上,页面可能是...
本文主要探讨如何解决Python中抓取内容乱码的问题,通过使用`decode`和`encode`方法来实现编码转换。 首先,我们要理解乱码问题的根源。乱码通常出现在当一个字符串的原始编码格式与我们试图解读它的编码格式不匹配...
在C#编程中,处理GB2312字符集是一项常见的任务,特别是在进行文本编码转换、读写中文文件或者网络数据传输时。 GB2312字符集基于双字节编码,每个字符由两个字节表示,前一个字节称为高位字节,后一个字节称为低位...