かなり整形式の Web サイトから特定のコンテンツを引き出す方法を探していますが、XML は完全ではありません。
<html>
<head>
<title>title</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="expires" CONTENT="now">
<meta http-equiv=refresh content=300>
</head>
<body bgcolor="#FFFFFF">
<p><font face="Arial, Helvetica, sans-serif" size="2"><img src="pict.gif" width="503" height="43"><br></font></p>
<p><font face="Arial, Helvetica, sans-serif" size="2">Please Note: ...<br></font></p>
<font face="Arial, Helvetica, sans-serif" size="3"><B>The Schedule</B></font><p></p>
<table border=0 width="100%">
<tr>
<td><font face="Arial, Helvetica, sans-serif" size="2"><B>CONTENT A</B></font> </td>
<td><font face="Arial, Helvetica, sans-serif" size="2"><B>CONTENT B</B></font> </td>
<td><font face="Arial, Helvetica, sans-serif" size="2"><B>CONTENT C</B></font> </td>
<td><font face="Arial, Helvetica, sans-serif" size="2"><B>CONTENT D</B></font> </td>
<td><font face="Arial, Helvetica, sans-serif" size="2"><B>CONTENT E</B></font></td>
</tr>
...
未終了の br に注意してください。
私は HTTParty を使用しようとしていますが、次のようなことをしたいと考えています:
include HTTParty
base_uri "http://website.com/"
basic_auth "name", "pw"
format :xml
def download_and_process_index_file
s = self.class.get("theurl.html")
thehtml = s.parsed_response
#print CONTENT A
puts thehtml['html']['body']['table']['tr']['td']['font']['b']
end
しかし、xml は解析されません。切り替えた場合format :html
、解析の良さが得られないようです。私はここで私の考えに近づいていますか?
ありがとう、ピーター