저는 루비와 프로그래밍 세계에 새로운 경험을하고 있습니다.Nokogiri XML 작성기로 HTML 스크래핑시 예상치 못한 결과가 발생합니다
내 목표는 테이블을 긁어내어 데이터를 XML 파일에 저장하는 것입니다. 필자가 작성한 간단한 스크립트는 두 가지를 모두 성공적으로 수행합니다. 내가 가지고있는 문제는 XML이 저장되는 방식입니다. 보고 있던 XML과 일치하지 않습니다.
나는 많은 예제, 튜토리얼 및 포럼을 뒤적었지만 아직 해결책을 찾지 못했다.
테이블에서 데이터를 가져 오는 더 좋은 방법에 대한 제안은 열려 있습니다. 특히 처음 세 열은 모두 내가 필요한 전부입니다. 도움!!! 여기
내 스크립트 :이 .xml 파일로 저장하거나 루비의 화면에 인쇄 여부require 'nokogiri'
require 'open-uri'
url = "http://www.covers.com/pageLoader/pageLoader.aspx?page=
/data/nba/team/pastresults/2010-2011/team404085.html"
doc = Nokogiri::HTML(open(url))
builder = Nokogiri::XML::Builder.new do |xml|
xml.root {
xml.items {
doc.css('.data').each do |o|
xml.item_content = o
end
}
}
end
File.open('ATL.xml','w'){|f| f.write builder.to_xml}
puts "Scrape Completed."
의 XML은 다음과 같습니다
는<?xml version="1.0"?>
<root>
<items>
<item_content=><table cellpadding="2" cellspacing="1" class="data">
<tr class="datahead">
<td width="11%">Date</td>
<td width="21%">Vs</td>
<td width="18%">Score</td>
<td width="27%">Type</td>
<td width="13%">ATL Line</td>
<td width="10%">O/U</td>
</tr>
<tr class="datarow">
<td>
01/18/11</td>
<td>
@ <a href="/pageLoader/pageLoader.aspx?page=/data/nba/team/
team404171.html">Miami</a>
</td>
<td>
W <a href="/pageLoader/pageLoader.aspx?page=/data/nba/
results/2010-2011/boxscore795345.html">
93-89</a> (OT)</td>
<td>
Regular Season</td>
<td>
W 5.5</td>
<td>
U 194</td>
</tr>
위의 코드는 그냥 스 니펫에는 여러 행이 있습니다. (총 44 개)
이렇게하는 가장 좋은 방법은 무엇입니까?
도움을 주신 Phrogz. 이 문제는 코드의 빌더 부분에있는 것처럼 보였습니다. HTML의 텍스트 만 필요했기 때문입니다. 다시 한 번 감사드립니다! – darren