繁体   English   中英

用Nokogiri解析带有奇怪编码的HTML

[英]Parsing HTML with a weird encoding with Nokogiri

我不能使用XPath,因为编码变得很奇怪。 我希望你能帮助我摆脱困境。

require "Nokogiri"
require "open-uri"
link = "http://www.arla.dk/Services/SearchService.asmx/RecipeResult?q=allRecipe&paging=6&include=&exclude=&area=recipeSearch&languageBranch=da"
doc = Nokogiri::HTML(open(link))
doc.xpath("//h2")

xpath方法返回一个空数组。 看来该文档未正确解析。 我认为这是由于要分析的文件包含编码的字符:

<strong>Frokost til 8</strong>
<ul><li class='ingHeading'><strong><b>Flade

响应是XML,因此首先使用Nokogiri :: XML对其进行解析:

xml = Nokogiri::XML open(link)

然后第一个字符串包含一些HTML,以便使用Nokogiri :: HTML进行解析

doc = Nokogiri::HTML xml.at('string').text

现在您可以进行搜索:

doc.xpath '//h2'

如上所述,问题在于HTML已编码,这就是为什么您看到转义序列的原因。 例如, &lt; 代替< 要解决此问题,请取消转义HTML。

我如何在Ruby中编码/解码HTML实体?基本上建议使用htmlentities

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM