Advertisement
lexquarkie

Ebay_amazon_price_comparison

Dec 19th, 2016
543
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.61 KB | None | 0 0
  1. # Ebay_amazon_price_comparison by Quarkie 2016
  2.  
  3. require 'rubygems'
  4. require 'vacuum'
  5. require 'csv'
  6. require 'nokogiri'
  7. require 'mechanize'
  8.  
  9.  
  10. class Item
  11.   def initialize url
  12.     @url = url
  13.     @price = 0
  14.     puts "Item created"
  15.   end
  16.  
  17.   def get_url
  18.     @url
  19.   end
  20. end
  21.  
  22. class EbayItem < Item
  23.   @@store = 'Ebay'
  24. end
  25.  
  26. class AmazonItem < Item
  27.  @@store = 'Amazon'
  28. end
  29.  
  30. def csv_read(filename)
  31.   array = []
  32.   CSV.foreach(filename) do |row|
  33.     array.push(row)
  34.   end
  35.   return array
  36. end
  37.  
  38. def csv_write(filename,array)
  39.   array.each do |row|
  40.     CSV.open(filename, 'w') do |csv_object|
  41.       csv_object << row
  42.     end
  43.   end
  44. end
  45.  
  46. def amazon_item_lookup(item_id, node)
  47.   request = Vacuum.new
  48.   request.configure(
  49.     aws_access_key_id: 'AKIAISQ2LYG7GJ76BCDA',
  50.     aws_secret_access_key: 'eTogcBPkaaKp2r0IIXEnTEkf2WGXlCJrJHWuFHKi',
  51.     associate_tag: 'tag'
  52.   )
  53.   response = request.item_lookup(
  54.     query: {
  55.       'ItemId' => item_id
  56.     }
  57.   )  
  58.   xml_search(response.body, node)
  59. end
  60.  
  61. def xml_search(content, node="/")
  62.   @doc = Nokogiri::XML(content)
  63.   puts @doc.xpath(node)
  64.   puts node
  65. end
  66.  
  67. def amazon_browse_node(node_id)
  68.   request = Vacuum.new
  69.   request.configure(
  70.     aws_access_key_id: '',      # !!!!
  71.     aws_secret_access_key: '',  # !!!!!
  72.     associate_tag: 'tag'
  73.   )
  74.   response = request.browse_node_lookup(
  75.     query: {
  76.       'BrowseNodeId' => node_id.to_i
  77.     }
  78.   )  
  79.   response.to_h
  80. end  
  81.  
  82. def amazon_item_attributes(doc)
  83.   @body = xml_search(doc, '//xmlns:ItemAttributes')
  84.   @body
  85. end
  86.  
  87. def ebay_find(keyword, *node)
  88.   url ='http://svcs.ebay.com/services/search/FindingService/v1'
  89.   $headers = {'X-EBAY-SOA-SECURITY-APPNAME' => 'LexQuark-Quarkie-PRD-ebff6a2ad-9a0198d4',  'X-EBAY-SOA-OPERATION-NAME' => 'findItemsAdvanced'   }  
  90.   agent = Mechanize.new()
  91.   $agent = ["Linux Firefox","Linux Konqueror","Linux Mozilla", "Mac Mozilla","Mac Safari"]
  92.   agent.user_agent_alias = $agent.sample
  93.  
  94.   query = '<?xml version="1.0" encoding="UTF-8"?>
  95.  <findItemsAdvancedRequest xmlns="http://www.ebay.com/marketplace/search/v1/services">
  96.    <keywords>' + keyword.to_s + '</keywords>
  97.    <paginationInput>
  98.      <entriesPerPage>20</entriesPerPage>
  99.    </paginationInput>
  100.  </findItemsAdvancedRequest>'
  101.  
  102.   page = agent.post(url,query,$headers)
  103.   # puts xml_search(page.content, '//xmlns:currentPrice')
  104.  
  105.  
  106.   puts xml_search(page.content, '//xmlns:item')
  107. end
  108.  
  109.  
  110. #TODO
  111.  
  112.  
  113. #puts amazon_item_lookup('B01DFKC2SO', "//xmlns:ASIN")
  114. # puts amazon_item_lookup('B01DFKC2SO', "//xmlns:Item")
  115. #puts amazon_browse_node(549726)
  116. puts ebay_find('B01DFKC2SO')
  117. #amazon  -  item to node_id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement