用Nokogiri编码怪异的HTML



我不能使用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。

相关内容

  • 没有找到相关文章

最新更新