Pythonで自動ログイン、ダウンロード、ファイル移動

シゴトがはかどる Python自動処理の教科書 クジラ飛行机 (著) を読んで役に立った部分のメモ

処理の内容は以下の通り 1.ログインが必要なサイトに自動ログイン 2.ダウンロード箇所まで移動 3.ファイル名を指定してダウンロード 4.ダウンロードしたファイルを指定の箇所に移動させる

import shutil, time, requests, urllib, datetime
from bs4 import BeautifulSoup

loginURL = "任意のURL" +  "ログインボタンを押したら追加されるパラメータ" 
userId, password = ("適当なユーザー名", "適当なパスワード")
date = datetime.datetime.now().strftime('%Y%m%d%H%M')
print(date)
fileName = f'./{date}.csv'

def loginDownload():
    session = requests.Session()
    res = session.post(loginURL, params={
        "ログインフォームのユーザー名に対応するnameタグ" : userId,
        "ログインフォームのパスワードに対応するnameタグ" : password
    })
    time.sleep(1)
    url1 = getLink(res.text, "任意のラベル") 
    mypageHTML = session.get(url1).text
    time.sleep(1)
    url2 = getLink(mypageHTML, "任意のラベル")
    download(session, url2)
    print("ダウンロードに成功しました!")
    


def getLink(html, label):
    soup = BeautifulSoup(html, "html.parser")
    for a in soup.find_all("a"):
        if label in a.text:
            url = urllib.parse.urljoin(loginURL, a["href"])
            print("url = ", url)
            return url
    print(label + "が見つかりません")
    quit()

def download(session, csvURL):
    res = session.get(csvURL)
    with open(fileName, "wt") as fp:
        fp.write(res.text)


if __name__ == "__main__":
    loginDownload()
    shutil.move(fileName, "./test")

業務で必要な部分の一部を学ぶことができた。 ダウンロードしたファイルの中身について処理を行う必要があるが、 追々追記予定。