- 浏览: 2478225 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
jsntghf:
peio 写道这个怎么运行?Ruby On Rails的环境搭 ...
多文件上传之uploadify -
peio:
这个怎么运行?
多文件上传之uploadify -
往事如烟1:
我的项目是自己init了一个原始的project,之后将ver ...
React Native热部署之CodePush -
jsntghf:
往事如烟1 写道我按照你的说明进行,发现app退出之后,在进入 ...
React Native热部署之CodePush -
往事如烟1:
我按照你的说明进行,发现app退出之后,在进入不正确,请问是什 ...
React Native热部署之CodePush
首先,我们需要用到nokogiri和open-uri
require 'nokogiri' require 'open-uri'
doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove')) doc.css('h3.r a.l').each do |link| puts link.content end
换种方式实现:
doc.xpath('//h3/a[@class="l"]').each do |link| puts link.content end
我们还可以这样来写:
doc.search('h3.r a.l', '//h3/a[@class="l"]').each do |link| puts link.content end
编码问题需要另行转换。
结果如下所示:
Aaron Patterson (tenderlove) on Twitter
Tender Lovemaking
Force M.D. - Tender Love Lyrics
Force MDs - Tender Love
Jordan Knight - Tender Love
Alicia Keys- Tender Love(live)
tenderlove's nokogiri at master - GitHub
Tender Love and Care on Flickr - Photo Sharing!
USHER - TENDER LOVE LYRICS
Love Quotes - Tender Love Quotes
评论
10 楼
lolomarx
2010-06-10
用nokogiri 遇到一个问题
直接ruby test.rb就通过,但是在rails 3 下转成rake任务通不过
换成rails 2.3.5的rake任务就能通过
究竟要如何解决呢?
详情参看:http://www.iteye.com/problems/43990
直接ruby test.rb就通过,但是在rails 3 下转成rake任务通不过
换成rails 2.3.5的rake任务就能通过
究竟要如何解决呢?
详情参看:http://www.iteye.com/problems/43990
9 楼
windr
2010-06-03
楼主用的开发环境是什么的?
我用NB6.8 配置nokogiri,但是没搞定。。
我用NB6.8 配置nokogiri,但是没搞定。。
8 楼
kenrome
2010-05-22
wozhidao 写道
在采集的时候编码问题如何解决
rails默认用的utf-8,而我要采集的网站是gb2312
目标网页是gb2312编码,有些页面能采回来,有些又提示有 无效的字符编码
改为
更离谱,直接错误,返回的信息都是乱码,更不看不懂那有问题
rails默认用的utf-8,而我要采集的网站是gb2312
arr = [1,2,3,4,5,6,7,9] url = "http://www.hishibo.cn?type=" arr.each do |a| doc = Nokogiri::HTML(open(url)) dco.css("table.txt>tr:nth-child(1)>td").each do |c| puts c.content end end
目标网页是gb2312编码,有些页面能采回来,有些又提示有 无效的字符编码
doc = Nokogiri::HTML(open(url))
改为
doc = Iconv.iconv("UTF-8","GB2312",Nokogiri::HTML(open(url)))
更离谱,直接错误,返回的信息都是乱码,更不看不懂那有问题
我按照你的这方法试过了,貌似你调用iconv的方法参数写反了,我写的如下:
doc = Iconv.iconv("GB2312//IGNORE","UTF-8//IGNORE",Nokogiri::HTML(open(url)))
注意:如果不加IGNORE的话,会报错
.. (Iconv::IllegalSequence)
7 楼
fly51fly
2010-03-06
根据我最新实验的结果,使用GB18030而不是GB2312在jruby环境下更可靠,即使用如下方式编码:
希望对大家有帮助
page_data = Iconv.new('GB18030//IGNORE', page_encode).iconv(page_data) doc = Nokogiri::HTML(page_data, nil, "GB18030") rescue nil
希望对大家有帮助
6 楼
山雨欲来风满楼
2010-01-20
在windows上的 nokogiri 不需要编码信息就能正确解码中文网页,但是 ubuntu上的 nokogiri 却报编码错误,不知道为什么?回去试试加上编码参数后能不能工作。 用 iconv转出来有几个中文字符可以识别,但是不是原汁原味的了,不知道为什么。
5 楼
jimxl
2010-01-13
nokogiri的Nokogiri::HTML.parse(contents, nil, 'gb2312')本来就有编码参数的。还是用这个吧。Iconv转换的。有时候再jruby上不行。。
4 楼
Omnibus
2010-01-13
wozhidao 写道
在采集的时候编码问题如何解决
rails默认用的utf-8,而我要采集的网站是gb2312
目标网页是gb2312编码,有些页面能采回来,有些又提示有 无效的字符编码
改为
更离谱,直接错误,返回的信息都是乱码,更不看不懂那有问题
rails默认用的utf-8,而我要采集的网站是gb2312
arr = [1,2,3,4,5,6,7,9] url = "http://www.hishibo.cn?type=" arr.each do |a| doc = Nokogiri::HTML(open(url)) dco.css("table.txt>tr:nth-child(1)>td").each do |c| puts c.content end end
目标网页是gb2312编码,有些页面能采回来,有些又提示有 无效的字符编码
doc = Nokogiri::HTML(open(url))
改为
doc = Iconv.iconv("UTF-8","GB2312",Nokogiri::HTML(open(url)))
更离谱,直接错误,返回的信息都是乱码,更不看不懂那有问题
curl http://www.hishibo.cn/
此網站原來就用utf-8吧。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3 楼
wozhidao
2009-12-28
ruby这个编码问题真是烦人,加上//IGNORE忽略掉不能转换有字符,还是有部分数据采不到
另外我觉得应该在open(url)这一步转换编码吧?
头痛,采数据这步还是用C#算了,encod == "gb2312" ? Encoding.Default.GetString(wc.DownloadData(url)) : Encoding.UTF8.GetString(wc.DownloadData(url));
另外我觉得应该在open(url)这一步转换编码吧?
头痛,采数据这步还是用C#算了,encod == "gb2312" ? Encoding.Default.GetString(wc.DownloadData(url)) : Encoding.UTF8.GetString(wc.DownloadData(url));
2 楼
jsntghf
2009-12-28
wozhidao 写道
在采集的时候编码问题如何解决
rails默认用的utf-8,而我要采集的网站是gb2312
目标网页是gb2312编码,有些页面能采回来,有些又提示有 无效的字符编码
改为
更离谱,直接错误,返回的信息都是乱码,更不看不懂那有问题
rails默认用的utf-8,而我要采集的网站是gb2312
arr = [1,2,3,4,5,6,7,9] url = "http://www.hishibo.cn?type=" arr.each do |a| doc = Nokogiri::HTML(open(url)) dco.css("table.txt>tr:nth-child(1)>td").each do |c| puts c.content end end
目标网页是gb2312编码,有些页面能采回来,有些又提示有 无效的字符编码
doc = Nokogiri::HTML(open(url))
改为
doc = Iconv.iconv("UTF-8","GB2312",Nokogiri::HTML(open(url)))
更离谱,直接错误,返回的信息都是乱码,更不看不懂那有问题
我举个例子:
url = "http://www.hishibo.cn" doc = Nokogiri::HTML(open(url)) doc.css("h3").each do |c| puts Iconv.iconv("GBK//IGNORE", "UTF-8//IGNORE", c.content) end
输出如下:
商品类别
销售排行
推荐热卖
最新商品
世博会资讯
发货信息
本店最新订单
购物必读
友情链接
1 楼
wozhidao
2009-12-27
在采集的时候编码问题如何解决
rails默认用的utf-8,而我要采集的网站是gb2312
目标网页是gb2312编码,有些页面能采回来,有些又提示有 无效的字符编码
改为
更离谱,直接错误,返回的信息都是乱码,更不看不懂那有问题
rails默认用的utf-8,而我要采集的网站是gb2312
arr = [1,2,3,4,5,6,7,9] url = "http://www.hishibo.cn?type=" arr.each do |a| doc = Nokogiri::HTML(open(url)) dco.css("table.txt>tr:nth-child(1)>td").each do |c| puts c.content end end
目标网页是gb2312编码,有些页面能采回来,有些又提示有 无效的字符编码
doc = Nokogiri::HTML(open(url))
改为
doc = Iconv.iconv("UTF-8","GB2312",Nokogiri::HTML(open(url)))
更离谱,直接错误,返回的信息都是乱码,更不看不懂那有问题
发表评论
-
Redmine集成知识库
2013-08-26 22:25 32281、下载redmine的知识库插件:redmine_know ... -
Redmine集成SVN
2013-08-20 20:13 53281、进入redmine目录下的config目录,我的是/Ap ... -
Redmine集成CKEditor
2013-08-15 21:08 4362Redmine的文本格式默认只支持textile,对于普通 ... -
如何使用Assets Pipeline
2011-11-21 16:13 1936Rails 3.1之前,所有资源文件都放在public的子目录 ... -
Rails console显示执行的Sql语句
2011-11-18 08:49 1860调试Active Record时经常会用到rails cons ... -
migrate中使用bigint
2011-11-14 10:40 2017使用mysql时,integer最大是10位。如果想存储更大的 ... -
rails中使用UUID
2011-11-08 08:44 2675可以将uuid的包拷贝到vendor/plugins下,或者在 ... -
Rails里删除Prototype改用JQuery的方法
2011-11-02 10:55 1453首先在Gemfile中添加jquery的gem gem ... -
ActionView::Template::Error (***.css isn’t precompiled)
2011-10-24 11:10 2458升级到Rails 3.1后,当rails s -e produ ... -
Rails Bundle简介
2011-10-21 09:00 1524Rails 3开始使用bundle来管理项目的gem依赖。该命 ... -
非WEB程序中使用Active Record
2011-10-18 16:08 1418一、新建一个Ruby文件 require " ... -
Rails中使用多选框
2011-10-14 10:10 2256<%= select_tag("tag_ids ... -
Could not find a JavaScript runtime
2011-10-13 13:17 1623Rails3.1下报出下面的错误: /gems/exe ... -
通过POP3读取邮件
2011-10-06 01:36 1507require 'net/pop' pop ... -
观察者模式
2011-10-01 16:24 1486require 'observer' class ... -
ruby1.9的中文问题
2011-09-29 08:31 1776STATUS = { "0" =&g ... -
列出所有的控制器以及方法名
2011-09-27 10:43 1551controllers = Dir.new("#{R ... -
abort的使用
2011-09-22 13:30 1483很多人可能会这样用: def stop_error(m ... -
rails3中mysql2的安装
2011-09-20 16:01 2002rails3中默认的mysql适配器是mysql2,执行以下命 ... -
让查询变得更优雅
2011-09-19 20:19 1071RailsWhere可以让代码变得更简洁。 看一 ...
相关推荐
Crystal的一个Html解析器(类似于Ruby的Nokogiri)
使用Nokogiri解析HTML 如果可用, gem用于具有更好错误检测功能的纯HTML5解析器。 使用'gem install rdf-microdata'安装生活实施从微数据到RDF的转换正在进行中。 该实现尝试从发布之日起是最新的,并且正在用于...
注意:新版本可能会破坏兼容性,在这种情况下,请使用v1.0分支或标记下的先前版本,该版本甚至支持php 5.4+ \ nokogiri类用于兼容性HTML解析器该库是一个快速HTML解析器,可以处理无效代码(错误将被忽略)。...
它使用 Nokogiri 解析 HTML 自动向运动员提供锻炼。 网址: : 任务列表: 使用设计进行身份验证 管理员名称间距 用户登录 使用 Nokogiri 进行页面抓取 锻炼识别和建立 刮伤锻炼页面 把它归结为“锻炼” ...
HTML5 ( string ) 为了解析HTML片段,提供了fragment方法。 require 'nokogumbo'doc = Nokogiri :: HTML5 . fragment ( string ) 由于HTML通常是通过网络获取的,因此还提供了HTTP get的便捷接口: require '...
Nokogiri 的电子书 Nokogiri 是解析HTML/XML的内容的ruby gem
能吉里Nokogiri(锯)使使用Ruby中的XML和HTML变得容易而轻松。 它提供了一个明智,易于理解的API,用于读取,写入,修改和查询文档。 它依靠像libxml2(C)和xerces(Java)之类的本机解析器来快速且符合标准。指导...
html_doc = Nokogiri::HTML(<html><body><h1>Mr. Belvedere Fan Club</h1></body></html>) xml_doc = Nokogiri::XML(<root><aliens><alien><name>Alf</name></alien></aliens></root>) ...
主要区别Nokogiri支持使用相同的HappyMapper标记解析文本节点以解析原始XML内容的解析#to_xml支持使用类组合时对名称空间的众多修复定义了名称空间但找不到该名称空间元素的XML实例的修复Installati
用于CrystalHTML解析器库,例如惊人的 Ruby gem。 我不会假装Crystagiri像Nokogiri那样做。 欢迎所有帮助! :) 安装 将此添加到应用程序的shard.yml : dependencies : crystagiri : github : madeindjs/...
Ox 和 Nokogiri 非常好地处理 HTML(甚至格式错误)的解析,因此我推荐它们。 依赖关系 Saxxy需要 Ruby >=1.9 或 JRuby with JRUBY_OPTS=--1.9 安装 将此行添加到应用程序的 Gemfile 中: gem 'saxxy' 或者独立于...
Hpricot已经结束。 在多年以来一直缺乏适当的珠宝维护者之后,人们决定最终关闭... Hpricot是一个用C语言编写的快速,灵活HTML解析器。它的设计非常灵活(例如Tanaka Akira的HTree),并具有非常有用的库(例如一些
#何谓爬虫? Parser,解析器,简单来说就是把「原本看不懂的东西」,转换成看得懂...其中open是open-uri提供的功能,负责把网页抓下来,再交由Nokogiri解析。 解析完后就可以跟他玩啦,详细可以看艾瑞克王的这篇: 用x
斧子Fuzi Swift中的轻量级XML / HTML快速解析器,使您的生活更加轻松。 Fuzi基于Mattt Thompson的 (AX)的Swift端口,使用其大多数低层实现,并遵循标准Swift约定对中间类和接口进行了重新设计,并修复了一些错误。...
用于在Ox,Nokogiri和LibXML之间进行性能比较。 快速Ruby XML序列化,了解如何将Ox用作Marshal的快速替代品。 RubyGems上的快速JSON解析器和编组器: https : //rubygems.org/gems/oj GitHub上的快速JSON解析...
注意:此gem有一个nokogiri( )后端(用于HTML解析)。 主要组件: Page , Headline , Block , ListItem和Link是用于轻松访问数据的包装器,但是仍然可以在这些对象中获取原始HTML。 对MediaWiki API的请求...
雨滴 ...描述 Raingrams是一个用Ruby编写的灵活且通用的ngrams库。 Raingrams支持大于1的ngram大小,文本/非文本克,多种解析样式以及打开/关闭的词汇模型。 特征 支持大于1的ngram大小。... doc = Nokogiri::HTML
如果可用,则使用[Nokogiri] []和/或[Nokogumbo] []来解析HTML,否则返回REXML。 临时支持 。 用gem install json-ld JSON-LD流配置文件 这个gem实现了一个优化的流阅读器,该阅读器用于从格式为JSON-LD的大型...
Nokogiri 用于解析网页 用于自动化的 Javascript + Mechanize.js(目前未实现) Ruby 的 Every gem 用于调度 用于发送文本通知的 Twilio 团队成员: 科林Craft.io(@colincraft) 布伦特爸爸 (@brent1x) 乔治·...