1

単一ファイルの Ruby スクリプトを使用して、特定のサイトのすべての電子メール アドレスをスクレイピングしようとしています。ファイルの下部には、その特定のページにリストされている電子メール アドレスを持つ URL を使用して、ハードコードされたテスト ケースがあります (したがって、最初のループの最初の繰り返しで電子メール アドレスを見つける必要があります。

何らかの理由で、私の正規表現が一致していないようです:

#get_emails.rb
require 'rubygems'
require 'open-uri'
require 'nokogiri'
require 'mechanize'
require 'uri'
require 'anemone'

class GetEmails

  def initialize
      @urlCounter, @anemoneCounter  = 0
      $allUrls, $emailUrls, $emails = []
  end


  def has_email?(listingUrl)
   hasListing = false
   Anemone.crawl(listingUrl) do |anemone|
      anemone.on_every_page do |page|
      body_text = page.body.to_s
      matchOrNil = body_text.match(/\A[^@\s]+@[^@\s]+\z/)
       if matchOrNil != nil
        $emailUrls[$anemoneCounter] = listingUrl
        $emails[$anemoneCounter] = body_text.match
        $anemoneCounter += 1
        hasListing = true
      else 
      end
    end
   end
   return hasListing
  end

end 

emailGrab = GetEmails.new()
emailGrab.has_email?("http://genuinestoragesheds.com/contact/")
puts $emails[0]
4

2 に答える 2