Изменение href приписывает с nokogiri и рубином на направляющих

У меня Есть документ HTML со ссылками ссылок для exemple:

<html>
  <body>
   <ul>
     <li><a href="http://someurl.com/etc/etc">teste1</a></li>
     <li><a href="http://someurl.com/etc/etc">teste2</a></li>
     <li><a href="http://someurl.com/etc/etc">teste3</a></li>
   <ul>
  </body>
</html>

Я хочу с Ruby on Rails, с nokogiri или некоторым другим методом, иметь заключительный документ как это:

<html>
  <body>
    <ul>
      <li><a href="http://myproxy.com/?url=http://someurl.com/etc/etc">teste1</a></li>
      <li><a href="http://myproxy.com/?url=http://someurl.com/etc/etc">teste2</a></li>
      <li><a href="http://myproxy.com/?url=http://someurl.com/etc/etc">teste3</a></li>
    <ul>
  </body>
</html>

Что лучшая стратегия состоит в том, чтобы достигнуть этого?

17
задан Ned Batchelder 19 July 2010 в 02:34
поделиться

1 ответ

Если вы решите использовать Nokogiri, я думаю, это должно сработать:

require 'cgi'
require 'rubygems' rescue nil
require 'nokogiri'

file_path = "your_page.html"
doc = Nokogiri::HTML(open(file_path))
doc.css("a").each do |link|
  link.attributes["href"].value = "http://myproxy.com/?url=#{CGI.escape link.attributes["href"].value}"
end
doc.write_to(open(file_path, 'w'))

Если я не ошибаюсь, rails загружает REXML по умолчанию, в зависимости от того, что вы пытаетесь сделать, вы также можете использовать это.

31
ответ дан 30 November 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: