Python/mechanize
インストール†
- easy_install のインストール
- mechanize のインストール
easy_install のインストール†
- ez_setup.py (http://peak.telecommunity.com/dist/ez_setup.py) をダウンロード
- コマンドプロンプトから以下を実行
rem ez_setup.py のディレクトリに移動 cd c:\hoge rem インストール python ez_setup.py
- Scripts フォルダができていろいろインストールされる
- 通常は Python のインストールディレクトリ内
- パスは通しても通さなくてもどちらでも
mechanize のインストール†
- コマンドプロンプトから以下を実行
rem Scripts にパスが通っているなら不要 cd c:\python26\Scripts rem インストール easy_install mechanize
コードのヒント†
基本的な使い方†
# -*- encoding: utf-8 -*-
import mechanize
# インスタンス作成
br = mechanize.Browser()
# 非ロボット化
br.set_handle_robots(False)
# URLのオープン
br.open('http://www.hoge.com')
# formの選択: 一番最初のformなら0
br.select_form(nr=0)
# name="id"、name="pass" が振られた input 領域にそれぞれ代入
br["id"] = "***"
br["pass"] = "***"
# 送信
br.submit()
# URLのオープン
res = br.open('http://www.hoge.com/login.html')
# 取得したHTMLを生で表示
print res.read()
ヒント類†
# -*- encoding: utf-8 -*-
import mechanize
br = mechanize.Browser()
br.set_handle_robots(False)
br.open('http://www.hoge.com')
# エンコーディングの取得
enc = br.encoding()
# レスポンスの取得、read() とは別
response = br.response()
print response
# リンク情報の取得(配列)
link = br.links()
# 現在のページにあるリンクを全部表示
for link in br.links():
print link
# リンクを抽出
br.find_link(text_regex = u"リンク文字列".encode("utf-8"))
# リンクを移動
br.follow_link(text_regex = u"リンク文字列".encode("utf-8"))
br.follow_link(url="リンク先URL")
# フォーム情報の取得(配列)
form = br.forms()
# 現在のページにあるフォームを全部表示
for form in br.forms():
print form
# URL へクエリを送信する
br.open("url", data)
# User-Agent をいじる
br.addheaders = [('User-agent', 'Mozilla/5.0')]
# BASIC 認証
br.add_password('http://www.hoge.com/', 'id', 'pwd')
# type=textarea の value の中身を取得
text = form.find_control(type='textarea').attrs['value']
# リードオンリ属性を解除
for form in br.forms():
form.find_control(name="mode").readonly = False
form.find_control(name="submit").readonly = False
Last-modified: 2011-10-12 (水) 20:34:25