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