#ruby #nokogiri #mechanize
#ruby #nokogiri #механизировать
Вопрос:
require 'rubygems'
require 'mechanize'
rational = Mechanize.new { |agent|
agent.user_agent_alias = 'Windows Mozilla'
}
results = rational.get(ARGV[0])
puts results.content
выдает мне html, но я хочу обычный текст. Лучше всего было бы, если бы его можно было отформатировать.
Ответ №1:
Этот код предоставит вам простой неформатированный текст всего документа:
require 'mechanize'
require 'nokogiri'
rational = Mechanize.new { |agent|
agent.user_agent_alias = 'Windows Mozilla'
}
document = Nokogiri::HTML(rational.get(ARGV[0]).content)
#This will give you very dirty result
#results = document.inner_text
#My suggestion is to extract text from some specific element
results = document.css("#content .my-element-with-some-contents").inner_text
Комментарии:
1. работает отлично. Спасибо. Я думал, что смогу использовать методы Nokogiri для объектов Mechanize….
2. Нет необходимости анализировать ответ, вы можете написать его как
rational.get(link); rational.page.at('/html/body/h1').text