/ / Використовуйте nokogiri або mechanize для розбору електронних листів, які виводяться за допомогою JavaScript - ruby, ruby-on-rails-3, html-parsing, nokogiri, mechanize

Використовуйте нокогірі або механізувати для аналізу електронних листів, які виводяться за допомогою JavaScript - рубій, рубін на рейках-3, html-parsing, nologiri, mechanize

Я хочу розібрати адреси електронної пошти, які відображаються таким чином:

<p class="email">
"Email: "
<script type="text/javascript"><!--
document.write("f"+"o"+"<wbr/>@"+"e"+"x"+"p"+"."+"c"+"o"); //-->
</script>
</p>

Я використовую цей код:

task import_emails: :environment do
require "mechanize"
agent = Mechanize.new
agent.get("URL")
agent.page.search(".email").each do |email|
puts email.text.strip
end
end

Вона повертає лише "Email:".

Відповіді:

0 для відповіді № 1

Nokogiri / Mechanize не обробляють JavaScript, тому текст електронної пошти, який ви додаєте з document.write їм не видно і тому ви тільки отримуєте Email: назад

Якщо потрібно вибрати елементи або текствізуалізується за допомогою JavaScript, вам доведеться розглянути інструменти, які фактично керують браузером, щоб ви отримали сторінку з JavaScript. Ватир. Також подивіться Капівара і Капібара webkit.

Побачити "Як використовувати механізм для обробки JavaScript?"для більш докладної інформації.