Как получить рейтинг продаж от Amazon ItemSearch / ItemLookup - PullRequest
2 голосов
/ 15 августа 2011

Я пытаюсь получить рейтинг продаж через API рекламы продуктов Amazon.Я использую amazon_product gem.

request = AmazonProduct["us"]

request.configure do |c|
  c.key    = AMAZON_KEY
  c.secret = AMAZON_SECRET
  c.tag    = TAG
end

#itemlookup
response = request.find('B003XU6H8I', :response_group => 'SalesRank')
response.find('Item').first
=> {"ASIN"=>"B003XU6H8I"}

Почему API не возвращает рейтинг продаж для этого элемента?Кроме того, я попытался получить группу ответов SalesRank с поиском элементов, но они не возвращаются.Это проблема с API?

Ответы [ 2 ]

6 голосов
/ 22 августа 2011

Я бы просто обработал это с помощью Nokogiri.

Например, введите следующее в irb, чтобы увидеть:

require 'nokogiri'
require 'open-uri'
website = 'http://www.amazon.com/dp/B000YYODLO'
doc = Nokogiri::HTML(open(website))
puts doc.css('#SalesRank').text[/\#.*\)/]

Конечно, вам нужно будет изменить B000YYODLO на любое значениеASIN имеет то, что вы царапаете.Если вы не ищите товарный ранг кофейного пресса, в этом случае я ответил сразу на два вопроса.

Кроме того, селектор CSS #SalesRank вытаскивает всю строку, вы можете использовать регулярное выражение, как я это сделал дляразберите все, что вам нужно.

Кроме того, поскольку я не знаком с используемым вами API-интерфейсом, возможно, вы захотите просмотреть его, чтобы узнать, используют ли они селекторы CSS, поскольку вам, возможно, просто нужно изменить SalesRank на #SalesRank.

Надеюсь, это поможет.

3 голосов
/ 19 августа 2011

Рейтинг продаж скорее всего недоступен. Я сделал несколько вещей с Амазоном, и когда у них нет того, что я ищу, я обычно очищаю это.

т.е. - в коде перейдите к нужному продукту и очистите информацию от Amazon. Перейдите на http://www.amazon.com/dp/[ASIN] и под подробностями продукта вы можете разобрать рейтинг (ы). В коде замените [ASIN] другими из списка продуктов, которые вам нужны.

Я использовал такие библиотеки, как селен и ватир или ватин, чтобы легко получить нужную информацию.

...