ruby Niconicoにログインしてニコレポマイリストの情报から动画タイトル·リンクを取得する

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby Niconicoにログインしてニコレポマイリストの情报から动画タイトル·リンクを取得する相关的知识,希望对你有一定的参考价值。

require 'mechanize'

module MechanizeScraper
  class NicoVideo
    TOP_PAGE = 'http://www.nicovideo.jp/'.freeze
    LOGIN_PAGE = 'https://account.nicovideo.jp/login'.freeze
    MY_PAGE = 'http://www.nicovideo.jp/my/top'.freeze

    def initialize(email_or_tel, password)
      @mechanize = Mechanize.new
      @page = @mechanize.get(TOP_PAGE)
      @email_or_tel = email_or_tel
      @password = password
    end

    def my_page
      login unless logged_in?
      @page = @page.link_with(href: '/my/top').click
    end

    def nico_repo_mylist
      my_page
      @page = @page.link_with(href: 'my/top/mylist').click
    end

    private

    def login
      page = @mechanize.get(LOGIN_PAGE)
      filled_login_form =
        proc do |page, id, pass|
          form = page.form_with(id: 'login_form')
          form.field_with(id: 'input__mailtel').value = id
          form.field_with(id: 'input__password').value = pass
          form
        end
      @page = filled_login_form.call(page, @email_or_tel, @password).submit
    end

    def logged_in?
      !@page.links
        .map { |elm| elm.href }
        .any? { |href| href.eql?('http://www.nicovideo.jp/login') }
    end
  end
end


id = 'example@example.com'
password = 'password'

nico = MechanizeScraper::NicoVideo.new(id, password)

pp nico.nico_repo_mylist
  .links_with(href: /nicorepo_mylist_added_video/)
  .find_all { |link| ((!link.href.empty? && !link.text.to_s.strip.empty?) && link.href.to_s.match?('watch')) }
  .map { |link| [link.text, link.href.sub(/\?.+$/, '')] }

以上是关于ruby Niconicoにログインしてニコレポマイリストの情报から动画タイトル·リンクを取得する的主要内容,如果未能解决你的问题,请参考以下文章

text WPログインURL

php ログイン认证テスト

sh GCPのCLIでのログイン方法

text Mac_MySQLのログインPW设定

php セキュリティ:ログインIDバレ防止

markdown [ログイン画面阅覧] #laravel#l54 #unittest