簡體   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