Войти в Vimeo Via Mechanize (ruby) - PullRequest
0 голосов
/ 30 марта 2012

Я пытаюсь войти в свою учетную запись vimeo с помощью Mechanize, чтобы очистить сотни заголовков видео и URL.Вот мой код:

 task :import_list => :environment do
  require 'rubygems'
  require 'mechanize'

    agent = Mechanize.new
    agent.user_agent = "Mac Safari"

    puts "Logging in..."
    page = agent.get("http://vimeo.com/log_in")
    form = page.forms[0]
    form.fields[0].value = 'sample@email.com'
    form.fields[1].value = 'somepassword'
    page = agent.submit(form)

  pp page

end

и мое сообщение об ошибке:

401 => Net::HTTPUnauthorized

Это выполняется через грабли, если это вообще имеет значение.Есть идеи?

Ответы [ 4 ]

1 голос
/ 23 мая 2013

моя первая мысль была:

Вход в Vimeo не работает без JavaScript, поэтому невозможно войти с помощью Механизировать .
Чтобы проверить мое смелое утверждение:

без JavaScript

  • отключить JavaScript для всех сайтов в вашем браузере
  • попробуйте войти (заполните форму в браузере, как обычно)
  • Вы получите несанкционированное сообщение на странице результатов

с JavaScript

  • включить JavaScript
  • все работает как положено

обновление

Vimeo.com использует следующую строку запроса при входе в систему.
Попробуем опубликовать строку вручную с помощью Mechanize.

action=login&service=vimeo&email=your-email&password=your-password&token=k7yd5du3L9aa5577bb0e8fc

обновление 2

У меня есть задача Ruby Rake, которая входит в учетную запись Vimeo Pro
и читает ссылку HTTP Live Streaming со страницы настроек видео.

обновление 3

Я опубликовал рабочее задание Ruby Rake: https://gist.github.com/webdevotion/5635755.

1 голос
/ 16 апреля 2013

Не уверен, как это сделать с Mecnanize, но вот код, чтобы сделать это с Капибара :

require 'capybara/dsl'
require 'selenium-webdriver'

Capybara.run_server = false
Capybara.default_driver = :selenium

class Vimeo
    include Capybara::DSL

    def go
        visit "https://vimeo.com/log_in"
        fill_in "email",    :with => "ivan.bisevac@gmail.com"
        fill_in "password", :with => "strx8UnK0a-"
        find("span.submit > input").click
    end
end

v = Vimeo.new
v.go

Кроме того, Capybara лучше подходит для очистки javascript-сайтов.

0 голосов
/ 16 апреля 2013

Кажется, что авторизация выдаёт что-то "токен"

часть заголовка http: Действие = Войти и обслуживание = Vimeo и электронная почта = your_mail и пароль = asfsdfsdf и маркер = 51605c24c92a4d4706ecbe9ded7e3851

0 голосов
/ 31 марта 2012

Вы пытались использовать официальный Vimeo API ?

...