Ruby Rails 使用 API 从亚马逊购买商品?

Ruby on Rails Purchase item from Amazon using API?

我想通过我的 rails 应用程序以编程方式自动在亚马逊上进行购买,因为我必须一周又一周地手动进行相同的购买。这将使用我自己的帐单 information/account,不代表用户。

我搜索了他们的大部分 API,发现您可以搜索商品、将其添加到购物车等,但我似乎找不到实际制作的方法购买。

有人知道通过 API 执行此操作的方法吗?将我们的手动流程自动化会很棒。这似乎应该是可能的,因为 https://zincapi.com/ 似乎促进了这一点。

你可以做到这一点,只是 not via the API。相反,使用:

机械化

their docs 中所述:

The Mechanize library is used for automating interaction with websites. Mechanize automatically stores and sends cookies, follows redirects, and can follow links and submit forms. Form fields can be populated and submitted.

您可以编写一个高级网络爬虫

  • 登录亚马逊
  • 将您想要的商品添加到购物篮
  • 结帐并支付您想要的商品

如何设置

我会提出一些逻辑并大致描述过程。详细解释所有内容超出了问题的范围。准备好进行大量挖掘。

1.添加您的抓取工具

深入研究 Mechanize。了解如何登录到您的网站、搜索链接、按下按钮以及所有这些巧妙的东西。它建立在使用 CSS 选择器的 Nokogiri 之上。可能需要一段时间才能掌握,但值得付出汗水!

此外,将单个任务的逻辑拆分为不同的方法。像

class AmazonCrawler
  attr_accessor :agent

  def initialize
    @agent = Mechanize.new
  end

  def login
    agent.get(LOGIN_PATH)
    # fill in and submit the form
  end

  def add_item_to_basket
    agent.get(ITEM_PATH)
    # find 'add to basket', etc...
  end

  def checkout
    agent.get(CHECKOUT_PATH)
    # validate adress, payment and place the order
  end

  def place_weekly_order
    AmazonCrawler.login
    AmazonCrawler.add_item_to_basket
    AmazonCrawler.checkout
  end
end

这样,您可以在以后需要时轻松添加其他任务

2。添加一个定时任务

要设置每周计划,我建议使用 whenever gem。这 gem 使安排任务变得容易

schedule.rb

every :sunday, :at => '12pm' do
  runner "AmazonCrawler.place_weekly_order"
end

旁注

理想情况下,我会设置一个特定的 Amazon 帐户来执行此操作。您不希望机器人结帐您在本周内添加的项目,并且可能不确定是否购买。

此外,请务必将您的凭据存储在 ENV 变量中,这样它们就不会暴露在您的代码中。

结论

我希望这能让你继续前进,你会学到很多新东西,但这实际上是一项有趣的任务,当你的小爬虫启动并 运行 时会非常有益。