2012-10-30 2 views
0

인코딩이 이상 해져서 XPath를 사용할 수 없습니다. 나는 당신이이 곤경에서 나를 도울 수 있기를 바랐다.Nokogiri로 이상한 인코딩으로 HTML 구문 분석하기

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 
+1

이것은 nokogiri 문제가 아니며 하나의 긴 문자열로 인코딩 된 소스 데이터에 문제가 있습니다. –

+0

흥미 롭다면, 나는 그것을 변환하기위한 도구를 찾을 수 있는지 알게 될 것이다. 너는 어떤 것도 알고 있니? – user1785060

답변

1

:.

xml = Nokogiri::XML open(link) 

다음 첫 번째 문자열이 일부 HTML 그렇게 노코 기리에 있다는 분석이 포함되어 ::

: HTML

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

당신은 당신의 검색을 할 수

doc.xpath '//h2' 
+0

도와 주셔서 감사합니다. :) – user1785060

0

, 문제는 HTML이 당신이 이스케이프 시퀀스를보고있는 이유입니다, 인코딩이다; 예 : < 대신 &lt;입니다. 이 문제를 해결하려면 HTML을 이스케이프 처리하십시오.

"How do I encode/decode HTML entities in Ruby?는 기본적으로 htmlentities를 사용하여 제안 응답은 노코 기리 :: XML로 구문 분석 그래서 첫 번째 XML입니다