表題の通り、ログイン状態を保ったままダウンロードできません。
ここの回答1によると、phantomjsはダウンロードに対応していないとのことなのですが、以下の回答2の回避策がありました。(英語はgoogle翻訳頼みで読解していて不安なのですが)
python
1 import requests 2 from selenium import webdriver 3 4 driver = webdriver.PhantomJS() 5 driver.get('page_with_download_link') 6 download_link = driver.find_element_by_id('download_link') 7 session = requests.Session() 8 cookies = driver.get_cookies() 9 10 for cookie in cookies: 11 session.cookies.set(cookie['name'], cookie['value']) 12 response = session.get(download_link)
これを改変し、以下を試してみました。
しかし、結果は「ログインをしてください」というページがダウンロードされていました。
python
1 def download(path, url, name): 2 kakuchoshi = url.split(".")[-1] 3 session = requests.Session() 4 cookies = br.get_cookies() 5 for cookie in cookies: 6 session.cookies.set(cookie['name'], cookie['value']) 7 res = session.get(link) 8 if res == 200: 9 print(name + '.' + kakuchoshi) 10 with open(path + '/' + name + '.' + kakuchoshi, 'wb') as file: 11 for chunk in res.iter_content(chunk_size=1024): 12 file.write(chunk)
エラー
- KeyError: 'name'
クッキーの['name']、['value']には、対応するものと思われるものを入れました。
環境
- windows
- python3.6
- selenium3.3.3
ダウンロード元
- 社内のグループウェア(サイボウズ)
ダウンロードしたいファイルの種類。
- ワード
- エクセル
保存先フォルダの指定もしたいと思います。よろしくお願いします。