HTTParty для разбора HTML - PullRequest
       4

HTTParty для разбора HTML

2 голосов
/ 07 марта 2011

Я ищу способ извлечь определенный контент из веб-сайта, который достаточно хорошо сформирован, но не вполне совершенен 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
        <td><font face="Arial, Helvetica, sans-serif" size="2"><B>CONTENT B</B></font>&nbsp;&nbsp;</td>
        <td><font face="Arial, Helvetica, sans-serif" size="2"><B>CONTENT C</B></font>&nbsp;&nbsp;</td>
        <td><font face="Arial, Helvetica, sans-serif" size="2"><B>CONTENT D</B></font>&nbsp;&nbsp;</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, то, похоже, я не получу ничего хорошего в разборе. Я даже близок в своем мышлении здесь?

Спасибо, Питер

...