2015-08-26 2 views
0

просто интересно, если его можно преобразовать этот скрипт в рельсахDOMDocument в Ruby On Rails

$c = file_get_contents('http://www.bunnings.com.au/products_category_plumbing-supplies_1637.aspx'); 
$dom = new DOMDocument(); 
$dom->loadHTML($c);  
$xpath = new DOMXPath($dom); 
$div = $xpath->query('//div[@class="details"]'); 

echo '<table>'; 

foreach($div as $details) 
{ 
    $name = $details->getElementsByTagName('h4')->item(0)->getElementsByTagName('a')->item(0)->nodeValue; 
    $price = $details->getElementsByTagName('p')->item(0)->getElementsByTagName('span')->item(0)->nodeValue; 
    $itemNumber = $details->getElementsByTagName('p')->item(0)->childNodes->item(2)->nodeValue; 

    $html = '<tr>'; 
    $html .= '<td>' . htmlspecialchars($name) . '</td>'; 
    $html .= '<td>' . htmlspecialchars($price) . '</td>'; 
    $html .= '<td>' . htmlspecialchars($itemNumber) . '</td>'; 
    $html .= '</tr>'; 

    echo $html; 
} 

echo '</table>'; 
+0

Почему это не может быть возможно? – Epodax

+0

Я не смог найти подобную функцию в Rails –

+1

Вы пытаетесь извлечь html-документ и поместить его на свою страницу? Конечно, это возможно. Для этого есть драгоценные камни. –

ответ

1

рельсах рубин Framework для веб-приложений. То, о чем вы просите, - это простой скрипт Ruby (который вы можете интегрировать в большее Rails-приложение, конечно).

Вы можете использовать камень nokogiri для анализа HTML. На терминале:

gem install nokogiri 

Затем создайте новый файл .RB так:

require 'open-uri' 
require 'nokogiri' 

url = 'http://www.bunnings.com.au/products_category_plumbing-supplies_1637.aspx' 
doc = Nokogiri::HTML(open(url)) 

div = doc.xpath('//div[@class="details"]') 

# Well, I guess you should continue now 

См http://www.nokogiri.org/tutorials/searching_a_xml_html_document.html для некоторых примеров Nokogiri.