私は自分の仕事がより速く進むのを助けるために小さなプロジェクトをやっています。私は現在、Python 3.2で書かれたプログラムを持っており、1つの例外を除いて、ほとんどすべての手作業を実行します。会社のWebサイト(ユーザー名とパスワード)にログオンし、月と年を選択して[ダウンロード]をクリックする必要があります。それを行うための小さなプログラムを作成して、プロセス全体がプログラムによって完全に実行されるようにしたいと思います。
調べてみましたが、2.X用のツールしか見つかりません。urllibを調べたところ、2.Xモジュールの一部がurllib.requestに含まれていることがわかりました。
私はそれを始めるためのいくつかのコードさえ見つけました、しかし私はそれをどのように実践するかについて混乱しています。
これが私が見つけたものです:
import urllib2
theurl = 'http://www.someserver.com/toplevelurl/somepage.htm'
username = 'johnny'
password = 'XXXXXX'
# a great password
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
# this creates a password manager
passman.add_password(None, theurl, username, password)
# because we have put None at the start it will always
# use this username/password combination for urls
# for which `theurl` is a super-url
authhandler = urllib2.HTTPBasicAuthHandler(passman)
# create the AuthHandler
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
# All calls to urllib2.urlopen will now use our handler
# Make sure not to include the protocol in with the URL, or
# HTTPPasswordMgrWithDefaultRealm will be very confused.
# You must (of course) use it when fetching the page though.
pagehandle = urllib2.urlopen(theurl)
# authentication is now handled automatically for us
Michael Foordと彼のページへのすべてのクレジット:基本認証
そこで、コードを少し変更して、すべての「urllib2」を「urllib.request」に置き換えました。
次に、Webページを開く方法を学び、プログラムがWebページを開く必要があることを理解し、ログインとパスワードのデータを使用してページを開き、そこからファイルをダウンロードする方法を学びます。
ie = webbrowser.get('c:\\program files\\internet explorer\\iexplore.exe')
ie.open(theurl)
(Explorerはゴミだと知っています。テストに使用するだけで、cromeを使用します;))
ただし、ログインデータが入力されたページは開きません。URLを入力したかのようにページが開きます。
パスワードハンドルを使用してページを開くにはどうすればよいですか?マイケルがどのようにそれらを作ったかはある程度理解していますが、実際にWebサイトを開くためにどちらを使用するかはわかりません。
また、後から考えて、Cookieを調べる必要がありますか?
御時間ありがとうございます