Ответ 1
Вы можете сделать это, просто не через API. Вместо этого используйте:
Mechanize
Как подробно описано в их документах:
Библиотека Mechanize используется для автоматизации взаимодействия с веб-сайтами. Механизм автоматически сохраняет и отправляет файлы cookie, переадресовывается и может следовать ссылкам и отправлять формы. Поля формы могут быть заполнены и отправлены.
Вы можете запрограммировать расширенный веб-искатель, который
- записывает вас на Amazon
- добавляет нужный товар в корзину
- проверяет и оплачивает нужные элементы.
Как установить это
Я предложу некоторую логику и опишу процесс примерно. Было бы не вдаваться в подробности вопроса, чтобы подробно объяснить все. Будьте готовы к большому рытью.
1. Добавьте свой сканер
Прокопайте прямо в Механизацию. Узнайте, как войти на ваш сайт, искать ссылки, кнопки и все, что аккуратно. Он построен на 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. Добавить Cronjob
Чтобы настроить свой недельный график, я предлагаю использовать всякий раз, когда он будет. Этот драгоценный камень делает задачи планирования легкими peasy
schedule.rb
every :sunday, :at => '12pm' do
runner "AmazonCrawler.place_weekly_order"
end
Sidenote
В идеале я бы создал конкретную учетную запись Amazon, которая только делает это. Вы не хотите, чтобы бот просматривал элементы, которые вы лично добавили в течение недели, и, возможно, не уверены в покупке.
Кроме того, обязательно сохраняйте свои учетные данные в переменных ENV, поэтому они не отображаются в вашем коде.
Заключение
Надеюсь, вам это удастся, для вас будет много нового, но это действительно забавная задача и будет очень полезной, когда ваш маленький искатель будет запущен и работает.