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 (2686d)