Class: BookFinder
- Inherits:
-
Object
- Object
- BookFinder
- Defined in:
- lib/book_finder_api.rb
Class Method Summary collapse
-
.flipkart(isbn) ⇒ Object
method : flipkart parameter : ISBN ISBN number of the Book you want to get.
Class Method Details
.flipkart(isbn) ⇒ Object
method : flipkart parameter : ISBN ISBN number of the Book you want to get. It should be 10 digits. returns : Hash It returns the Hash of the Book Details with Field and value basis. Syntax : Hash BookFinder.flipkart(ISBN) Example : book_details = BookFinder.flipkart(9788120305960)
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/book_finder_api.rb', line 13 def self.flipkart(isbn) #setting the url search_url="http://www.flipkart.com/search/a/all?query=#{isbn}" #initiating the Mechanize result=Hash.new agent =Mechanize.new #for following redirect agent.redirect_ok #getting the page page = agent.get(search_url) #getting the titles and author title_div=page.search(".mprod-summary-title") puts "BOOK:#{title_div.search('h1').text()}" result["Book"]=title_div.search("h1").text() =[] =title_div.search("h2") .each do || << .text() end result["Author"]=.join(",") if result["Author"] =="" title_div.search(".secondary-info a").each do || << .inner_html end result["Author"]=.join(",") end #storing the resluts page.search(".fk-specs-type2 tr").each do |tr| fk_key=tr.search(".specs-key").text() fk_val=tr.search(".specs-value").text() unless fk_val=="" result[fk_key]=fk_val end end #storing the colleges from breadcrumb = page.search(".fk-lbreadbcrumb a") generals = ['Other General','Others Engineering'] if .count >0 result['college']=[4].search("span").text() if [4] result['stream']= [5].search("span").text() if [5] if generals.include? (result['college']) result['college']=[5].search("span").text() result['stream']= [6].search("span").text() if([6]) end end #storing the image img_tag=page.search("#mprodimg-id") puts "IMAGE:#{img_tag}" unless img_tag.empty? img = img_tag.search("img") begin img_url = img.attribute("data-src") result["img_url"]=img_url.to_s rescue result["img_url"]="" end puts "#{result['img_url']} is image url" else page.search("#main-image-id").each do |img_id| img_tag=img_id.search("img") img_url=img_tag.attribute("src") end result["img_url"]=img_url.to_s puts "Secondary Image: #{result['img_url']} is image url" end #storing the price price = page.search("#fk-mprod-list-id").text() price = page.search("#fk-mprod-our-id").text() if price =="" price = page.search(".fk-font-finalprice").text() if price =="" price.delete!("Rs. ") result["price"] = price result["availability"] = page.search("#fk-stock-info-id").text() result["description"] = page.search("#description").inner_html().force_encoding("UTF-8") result["description"].gsub!('<a href="#">top</a>',"") result end |