ruby-on-rails 使用API从Amazon购买商品?

q9yhzks0  于 2023-02-26  发布在  Ruby
关注(0)|答案(1)|浏览(123)

我想通过Rails应用程序在Amazon上自动购物,因为我必须每周手动购买相同的商品,这将使用我自己的账单信息/账户,而不是代表用户。
我已经搜索了他们的大多数API,发现你可以搜索一个项目,添加到购物车等,但我似乎找不到一种方法来实际购买。
有谁知道通过API来实现这个功能的方法吗?这将是一个很好的自动化手动过程。看起来它应该是可能的,因为https://zincapi.com/似乎有助于实现这一点。

kkbh8khc

kkbh8khc1#

您可以只使用not via the API来执行此操作,而使用:

机械化

正如their docs中所描述的:
Mechanize库用于自动与网站交互。Mechanize自动存储和发送Cookie、跟踪重定向,并且可以跟踪链接和提交表单。可以填充和提交表单域。
您可以编写一个高级网络爬虫程序

  • 登录Amazon
  • 添加你想要的项目到购物篮
  • 结账并支付您所需的项目

如何设置

我会提出一些逻辑,并粗略地描述一下过程。详细解释一切已超出了问题的范围。请准备好进行大量挖掘。

    • 1.添加爬网程序**

深入研究Mechanize。学习如何登录你的网站,搜索链接,按下按钮和所有的整洁的东西。它是建立在Nokogiri使用CSS选择器。它可能需要一段时间来掌握,但它是值得的汗水!
此外,将单个任务的逻辑分解为不同的方法。

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使计划任务变得非常简单

  • 计划. rb *
every :sunday, :at => '12pm' do
  runner "AmazonCrawler.place_weekly_order"
end
    • 旁注**

理想情况下,我会设置一个特定的亚马逊帐户,只这样做。你不会希望机器人结帐的项目,你个人添加了在一周内,可能还不确定购买。
此外,请确保将凭据存储在ENV变量中,这样它们就不会暴露在代码中。

    • 结论**

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

相关问题