Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails使用API从Amazon购买物品?_Ruby On Rails_Amazon - Fatal编程技术网

Ruby on rails RubyonRails使用API从Amazon购买物品?

Ruby on rails RubyonRails使用API从Amazon购买物品?,ruby-on-rails,amazon,Ruby On Rails,Amazon,我想通过编程自动从我的rails应用程序在Amazon上进行购买,因为我必须每周手动进行相同的购买。这将使用我自己的账单信息/帐户,而不是代表用户 我搜索了他们的大多数API,发现你可以搜索一个项目,将其添加到购物车中,等等。但我似乎找不到一种实际购买的方法 有人知道通过API实现这一点的方法吗?自动化我们的手工流程会很好。似乎这应该是可能的,因为似乎有助于实现这一点。你可以这样做,只要。相反,请使用: 机械化 如中所述: Mechanize库用于自动化与网站的交互。Mechanize自动存储和

我想通过编程自动从我的rails应用程序在Amazon上进行购买,因为我必须每周手动进行相同的购买。这将使用我自己的账单信息/帐户,而不是代表用户

我搜索了他们的大多数API,发现你可以搜索一个项目,将其添加到购物车中,等等。但我似乎找不到一种实际购买的方法

有人知道通过API实现这一点的方法吗?自动化我们的手工流程会很好。似乎这应该是可能的,因为似乎有助于实现这一点。

你可以这样做,只要。相反,请使用:

机械化 如中所述:

Mechanize库用于自动化与网站的交互。Mechanize自动存储和发送cookie,跟踪重定向,并可以跟踪链接和提交表单。可以填充和提交表单字段

您可以编写一个高级web爬虫程序

  • 让你登录亚马逊
  • 将所需物品添加到购物篮中
  • 签出并支付您想要的物品
如何设置此选项 我将提出一些逻辑并大致描述过程。详细解释每件事超出了问题的范围。为大量挖掘做好准备

1。添加您的爬虫程序

深入研究机械化。学习如何登录到你的网站,搜索链接,按下按钮和所有这些整洁的东西。它是建立在使用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。添加Cronjob

要设置您的每周时间表,我建议使用。这个gem使得调度任务变得容易

附表1.rb

旁注

理想情况下,我会建立一个特定的亚马逊帐户,只做这一点。您不希望机器人结帐您个人在一周内添加的项目,并且可能还不确定是否要购买

另外,请确保将凭据存储在ENV变量中,以便它们不会在代码中公开

结论


我希望这能让你走上正轨,会有很多新东西需要你学习,但这实际上是一项有趣的任务,当你的小爬虫启动并运行时,它会非常有价值。

我相信实现这一点的唯一方法是绘制出亚马逊的私有API,例如亚马逊应用程序使用的API。不过,我相信这是违反他们的TOS的。据我所知,没有办法正式这么做。看来这几周会很有趣!感谢您提供的详细示例和建议!
every :sunday, :at => '12pm' do
  runner "AmazonCrawler.place_weekly_order"
end