[英]Ruby, Nokogiri: how do i ensure UTF8 throughout nokogiri parsing, erb template, and encoding HTML file
[英]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已編碼,這就是為什么您看到轉義序列的原因。 例如, <
代替<
。 要解決此問題,請取消轉義HTML。
“ 我如何在Ruby中編碼/解碼HTML實體?基本上建議使用htmlentities 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.