1

このようにレンダリングされた電子メールアドレスを解析したい:

<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:」のみを返します。

4

1 に答える 1

0

Nokogiri/Mechanize は JavaScript を処理しないため、追加したメール テキストdocument.writeは表示されず、Email:戻ってくるだけです。

JavaScript を使用してレンダリングされた要素またはテキストを選択する場合は、JavaScript でレンダリングされたページを取得できるように、実際にブラウザーを駆動するツールを検討する必要があります。その一例がWatirです。また、CapybaraCapybara webkit もご覧ください

詳細については、「Mechanize を使用して JavaScript を処理するにはどうすればよいですか?」を参照してください。

于 2013-01-24T23:53:56.357 に答える