公式動画へのコメント鳥を試していたら,いくつかのモジュールでログインまでは出来たんで,まとめておきます.
requests
# -*- coding: utf-8 -*- import requests from time import sleep url = "取得したい動画のURL" mail = "ニコニコ動画のログインするメアド" password = "ニコニコ動画のログインするパスワード" # セッションを開始 session = requests.session() login_info ={ 'mail_tel':mail, 'password':password } # action url_login = "https://account.nicovideo.jp/api/v1/login?show_button_twitter=1&site=niconico&show_button_facebook=1&next_url=&mail_or_tel=1" res = session.post(url_login, data=login_info) # proxyがあれば引数proxiesに辞書型で入れる res.raise_for_status() # エラーならここで例外を発生させる sleep(1) # 動画ページへ video_url=session.get(URL,proxies=proxy_dict) video_url.raise_for_status()
selenium
#encoding:utf-8 from selenium import webdriver from time import sleep url = "取得したい動画のURL" mail = "ニコニコ動画のログインするメアド" password = "ニコニコ動画のログインするパスワード" browser = webdriver.Chrome(executable_path='./chromedriver') # ニコニコ動画にログイン url_login="https://account.nicovideo.jp/login?site=niconico&time=1568443071&hash_key=57aa5439&next_url=" browser.get(url_login) browser.find_element_by_id("input__mailtel").send_keys(mail) browser.find_element_by_id("input__password").send_keys(password) sleep(1) browser.find_element_by_id("login__submit").click() sleep(1) # 動画ページへ browser.get(url) sleep(10)
mechanize
# -*- coding: utf-8 -*- from mechanize import Browser from time import sleep url = "取得したい動画のURL" mail = "ニコニコ動画のログインするメアド" password = "ニコニコ動画のログインするパスワード" url_login = "https://account.nicovideo.jp/login?site=niconico&time=1568443071&hash_key=57aa5439&next_url=" br = Browser() br.open(url_login) br.select_form(nr=0) br["mail_tel"] = mail br["password"] = password br.submit() sleep(1) # 動画ページへ try: br.open(url) except mechanize._response.httperror_seek_wrapper as me: print(me) print(br.response().read())
Robobrowser
# -*- coding: utf-8 -*- from robobrowser import RoboBrowser url = "取得したい動画のURL" mail = "ニコニコ動画のログインするメアド" password = "ニコニコ動画のログインするパスワード" browser = RoboBrowser(parser="html.parser") # ニコニコ動画にログイン url_login="https://account.nicovideo.jp/login?site=niconico&time=1568443071&hash_key=57aa5439&next_url=" browser.open(url_login) form = browser.get_form() form['mail_tel'] = mail form['password'] = password browser.submit_form(form) # 動画ページへ browser.open(url)
参考
- PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
- requests
- selenium
- mechanize
- Robobrowser