Я хочу розібрати адреси електронної пошти, які відображаються таким чином:
<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 для відповіді № 1Nokogiri / Mechanize не обробляють JavaScript, тому текст електронної пошти, який ви додаєте з document.write
їм не видно і тому ви тільки отримуєте Email:
назад
Якщо потрібно вибрати елементи або текствізуалізується за допомогою JavaScript, вам доведеться розглянути інструменти, які фактично керують браузером, щоб ви отримали сторінку з JavaScript. Ватир. Також подивіться Капівара і Капібара webkit.
Побачити "Як використовувати механізм для обробки JavaScript?"для більш докладної інформації.