草庐IT

Nokogiri

全部标签

ruby - 使用 Nokogiri 抓取内容时如何排除嵌套元素?

我有一个页面,内容与此类似:CrapidontcareaboutHereissometextiwantHereissomemoretextiwantOhiwantthistexttoo:)我的目标是捕获#level2中的文本但是#level3嵌套在其中与我想要的文本处于同一级别。是否有可能排除?我应该修改文档并在解析之前简单地删除元素吗? 最佳答案 require'nokogiri'xml=CrapidontcareaboutHereissometextiwantHereissomemoretextiwantOhiwantthist

ruby - Nokogiri 将值作为字符串而不是数组返回

我正在使用返回多个值的Nokogiri运行脚本。我的印象是(并通过多个来源向我保证)结果应该是数组的形式。相反,我得到了一个丑陋的字符串。这是代码require'nokogiri'require'open-uri'require'spreadsheet'profile_page_scraper=Nokogiri::HTML(open('http://www.crunchbase.com/company/facebook'))putsprofile_page_scraper.css('div.col1_contenttd.td_left').text返回这个:PublicDateRais

ruby - 从链接文本中提取带有 Nokogiri 的链接?

我想从网页中提取特定链接,使用Nokogiri按文本搜索它:site1site2site3我想要“站点3”的href并返回:http://example.org/site/3/或者我想要“站点1”的href并返回:http://example.org/site/1/我该怎么做? 最佳答案 原文:text=site1site2site3TEXTlink_text="site1"doc=Nokogiri::HTML(text)pdoc.xpath("//a[text()='#{link_text}']/@href").to_s更新:据我

ruby-on-rails - 在 Nokogiri 中查找嵌套键

我正在使用nokogiri获取以下节点:这是一个Nokogiri::XML::NodeSet.我想得到值"USD"我试过:node.search'Parameter[key=currency]'但我不知道如何检索实际值。那么,我怎样才能得到值“USD”呢?谢谢。 最佳答案 由于指向节点很容易,所以并不完全清楚您想要什么:require'nokogiri'doc=Nokogiri::XML(EOTdoc.at('Parameter')['value']#=>"USD"doc.search('Parameter').first['val

ruby - 如何使用 Nokogiri 获取没有嵌套元素的内容

src='Andblafoonotimportantbarbaz'doc=Nokogiri::XML(src)putsdoc.xpath('paragraph').first.content上面的代码返回:"Andblafoonotimportantbarbaz"我正在寻找一种无需嵌套元素即可获取内容的方法。上面的例子只是一个示例XML,但在这个例子中我想要这样的结果:"Andblafoobarbaz" 最佳答案 putsdoc.xpath('paragraph/child::text()')我已经很多年没用过XPath了,但这似乎

ruby - 使用 Nokogiri 解析表

我想使用Nokogiri解析一个表。我是这样做的defparse_table_nokogiri(html)doc=Nokogiri::HTML(html)doc.search('table>tr').eachdo|row|row.search('td/font/text()').eachdo|col|pcol.to_sendendend我的一些表格有这样的行:Sometext...有些人有这个。Sometext我的XPath表达式适用于第二种情况,但不适用于第一种情况。有没有我可以使用的XPath表达式,它会从单元格的最里面的节点给我文本,以便我可以处理这两种情况?我已将更改合并到我的

ruby-on-rails - 一次多个 Nokogiri 请求

我有一个Controller,我正在尝试从远程源获取XML文件。类似于:@artist=Nokogiri.XML(open(url).read)但是,我想一次执行其中多个以获得不同的数据。我能以某种方式使用线程吗?单独执行一个大约需要400毫秒。因此,当它们连续执行三个时,响应最多可达1秒以上。 最佳答案 是的,你可以使用线程:named_urls={artist:'http://foo.com/bar',song:'http://foo.com/jim',#etc.}@named_xmls={}one_at_a_time=Mute

ruby - 使用 Nokogiri 提取一些 JSON

require'open-uri'require'json'require'nokogiri'doc=Nokogiri::HTML(open("http://www.highcharts.com/demo/"))putsdoc但是我想从这个网页中提取json,使用正则表达式似乎不起作用,如何通过XPath提取JSON? 最佳答案 以下是从URL访问脚本标签(不引用外部文件)的方法:require'open-uri'require'nokogiri'doc=Nokogiri.HTML(open('http://www.highchar

ruby - Nokogiri 在进行 XPath 搜索时不返回任何内容

我需要解析网页中的表格。我在使用Ruby和Nokogiri之前已经这样做了,但这次我的方法不起作用。这就是我正在做的:response=RestClient.get"http://www.webpage.com?page=0"doc=Nokogiri::HTML(response.body,nil,'utf-8')doc.remove_namespaces!table=doc.xpath(".//*[@id='contsinderecha']/form/table/tbody/tr[4]/td/table/tbody/tr[5]/td/table")table只是一个空数组。响应很好,

ruby-on-rails - Nokogiri 依赖项 libxml 和 libxslt 未安装

我在Ubuntu12.1064位上使用Ruby2.1。我无法安装Nokogiri,因为它需要libXSLT和libxml。我尝试安装这两个但出现此错误:***@***:~$sudoapt-getinstalllibxslt-devlibxml2-dev[sudo]passwordfor:Readingpackagelists...DoneBuildingdependencytreeReadingstateinformation...DoneNote,selecting'libxslt1-dev'insteadof'libxslt-dev'libxml2-devisalreadythen