Python/mechanize

Top/Python/mechanize

インストール

  1. easy_install のインストール
  2. mechanize のインストール

easy_install のインストール

  1. ez_setup.py (http://peak.telecommunity.com/dist/ez_setup.py) をダウンロード
  2. コマンドプロンプトから以下を実行
    rem ez_setup.py のディレクトリに移動
    cd c:\hoge
    
    rem インストール
    python ez_setup.py
    
  3. Scripts フォルダができていろいろインストールされる
    • 通常は Python のインストールディレクトリ内
    • パスは通しても通さなくてもどちらでも

mechanize のインストール

  1. コマンドプロンプトから以下を実行
    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