Class: Classifieds::BoatScraper
- Inherits:
-
Object
- Object
- Classifieds::BoatScraper
- Defined in:
- lib/classifieds/boat_scraper.rb
Overview
converts Boattrader.com power boat classified listings into objects
Class Method Summary collapse
-
.scrape_results_detail_page(detail_doc, item_condition, detail_values) ⇒ Object
Returns detail attributes and values in detail_values hash.
-
.scrape_results_page(results_url, results_url_file, results_doc, item_class) ⇒ Object
Creates listings from summary web page.
Class Method Details
.scrape_results_detail_page(detail_doc, item_condition, detail_values) ⇒ Object
Returns detail attributes and values in detail_values hash
30 31 32 33 34 35 36 37 38 |
# File 'lib/classifieds/boat_scraper.rb', line 30 def self.scrape_results_detail_page(detail_doc, item_condition, detail_values) boat_details_doc = detail_doc.css('.boat-details') if boat_details_doc.empty? do_alt_processing(detail_doc, item_condition, detail_values) else do_normal_processing(detail_doc, boat_details_doc, item_condition, detail_values) end end |
.scrape_results_page(results_url, results_url_file, results_doc, item_class) ⇒ Object
Creates listings from summary web page
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/classifieds/boat_scraper.rb', line 7 def self.scrape_results_page(results_url, results_url_file, results_doc, item_class) results_doc.css('.boat-listings li').each { |result| id = listing_id(result) next if id.nil? descr_div = result.css('.description') title_parts = split_title(descr_div) # => [year, make, model] start_date = '' # Listing start_date currently not available from web page. sale_price = sale_price(descr_div) seller_name = seller_name(descr_div) seller_location = seller_location(descr_div) seller_phone = '' # Seller phone currently not available from web page. detail_url = detail_url(results_url, result) item_condition = 'Used' # Condition currently not available from web page. item = item_class.new(title_parts[0], title_parts[1], title_parts[2], sale_price, item_condition, detail_url) seller = Classifieds::Seller.find_or_create(seller_name, seller_location, seller_phone) Classifieds::Listing.new(id, item, seller, start_date) } end |