Как правильно использовать Scrubty для захвата URL из содержимого, выводимого в формате XML - PullRequest
0 голосов
/ 07 сентября 2010

Я ни в коем случае не мастер с Руби, и я новичок в Скрабыте.Я просто пробовал некоторые примеры, найденные на вики-странице.Примером, над которым я работал, было получение результатов поиска, возвращаемых Google, когда вы выполняли поиск по «ruby», и у меня была идея собрать URL каждого результата, чтобы я мог продолжить и получить эту страницу.Проблема в том, что я не знаю, как правильно получить URL.Это мой следующий код:

require 'rubygems'
require 'scrubyt'

google_data = Scrubyt::Extractor.define do
  fetch 'http://www.google.com/ncr'
  fill_textfield 'q','ruby'
  submit

  link_title "//a[@class='l']", :write_text => true do
    link_url
  end
end

google_data.to_xml.write($stdout, 1);

Код распечатывает данные XML соответствующим образом (имя и ссылка), но как мне получить ссылку без тегов <link_url>, которые, кажется, добавляются к ней (япопытался распечатать link_url, и я заметил, что теги также напечатаны).Могу ли я сделать что-то столь же простое, как fetch link_url, или есть способ извлечь текст из содержимого xml, хранящегося в link_url?

Это часть содержимого, которое печатается google_data.to_xml.write():

<root>
  <link_title>
    Ruby Programming Language
    <link_url>http://ruby-lang.org/</link_url>
  </link_title>
  <link_title>
    Download Ruby
    <link_url>http://www.ruby-lang.org/en/downloads/</link_url>
  </link_title>
  <link_title>
    Ruby - The Inspirational Weight Loss Journey on the Style Network ...
    <link_url>http://www.mystyle.com/mystyle/shows/ruby/index.jsp</link_url>
  </link_title>
  <link_title>
    Ruby (programming language) - Wikipedia, the free encyclopedia
    <link_url>http://en.wikipedia.org/wiki/Ruby_(programming_language)</link_url>
  </link_title>
</root>

1 Ответ

0 голосов
/ 28 сентября 2010

Я бы подумал об альтернативах.Scrubyt не обновлялся некоторое время, и форумы были закрыты.

Механизация может делать то же, что и экстрактор, Nokogiri может анализировать XML или HTMLответы, и Builder может создавать XML (хотя кажется, что вы действительно не хотите XML).

...