Class: Scraper::Crawler::AppleImei

Inherits:
Object
  • Object
show all
Defined in:
lib/scraper/crawler/apple_imei.rb

Overview

AppleImei controls request to the apple site

Constant Summary

URL =
URI("https://selfsolve.apple.com/wcResults.do")
USER_AGENT =
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:38.0) " \
"Gecko/20100101 Firefox/38.0"

Instance Method Summary (collapse)

Instance Method Details

- (Integer) number

Note:

We need that number to do the correct imei request.

Random number

Returns:

  • (Integer)

    returns the random integer between 1000 and 3000



54
55
56
# File 'lib/scraper/crawler/apple_imei.rb', line 54

def number
  rand(1000..3000)
end

- (String) page

Page content

Returns:

  • (String)

    returns content of the page



33
34
35
# File 'lib/scraper/crawler/apple_imei.rb', line 33

def page
  @res ? @res.body : ""
end

- (Boolean) parsable?

Is content able for parsing?

Returns:

  • (Boolean)

    returns true if content of the page parasble, otherwise false



64
65
66
# File 'lib/scraper/crawler/apple_imei.rb', line 64

def parsable?
  status_code.between?(200, 299) && !!/html/i.match(page)
end

- (String) request_imei(imei)

Make request with the given IMEI number

Parameters:

  • imei (String)

Returns:

  • (String)

    returns response page body



20
21
22
23
24
25
26
# File 'lib/scraper/crawler/apple_imei.rb', line 20

def request_imei(imei)
  req = Net::HTTP::Post.new(URL, "User-Agent" => USER_AGENT)
  req.set_form_data(sn: imei, num: number)
  @res = Net::HTTP.start(URL.hostname, URL.port, use_ssl: true) do |http|
    http.request(req)
  end
end

- (Integer) status_code

HTTP response code

Returns:

  • (Integer)


42
43
44
# File 'lib/scraper/crawler/apple_imei.rb', line 42

def status_code
  @res ? @res.code.to_i : 0
end