html + javascript automations = [mechanize + ?? ] or something else?

Duncan Booth duncan.booth at invalid.invalid
Tue Jan 16 06:51:06 EST 2007


"John" <weekender_ny at yahoo.com> wrote:

> Is there a way
> to control a browser like firefox from python itself? How about IE?

IE is easy enough to control and you have full access to the DOM:

>>> import win32com
>>> win32com.client.gencache.EnsureModule('{EAB22AC0-30C1-11CF-A7EB-
0000C05BAE0B}', 0, 1, 1)
<module 'win32com.gen_py.EAB22AC0-30C1-11CF-A7EB-0000C05BAE0Bx0x1x1' from 
'C:\Python25\lib\site-packages\win32com\gen_py\EAB22AC0-30C1-11CF-A7EB-
0000C05BAE0Bx0x1x1.py'>
>>> IE = win32com.client.DispatchEx('InternetExplorer.Application.1')
>>> dir(IE)
['CLSID', 'ClientToWindow', 'ExecWB', 'GetProperty', 'GoBack', 'GoForward', 
'GoHome', 'GoSearch', 'Navigate', 'Navigate2', 'PutProperty', 
'QueryStatusWB', 'Quit', 'Refresh', 'Refresh2', 'ShowBrowserBar', 'Stop', 
'_ApplyTypes_', '__call__', '__cmp__', '__doc__', '__getattr__', 
'__init__', '__int__', '__module__', '__repr__', '__setattr__', '__str__', 
'__unicode__', '_get_good_object_', '_get_good_single_object_', '_oleobj_', 
'_prop_map_get_', '_prop_map_put_', 'coclass_clsid']
>>> IE.Visible=True
>>> IE.Navigate("http://plone.org")
>>> while IE.Busy: pass

>>> print IE.Document.getElementById("portlet-news").innerHTML
<DT class=portletHeader><A class="feedButton link-plain" 
href="feed://plone.org/news/newslisting/RSS"><IMG title="RSS subscription 
feed for news items" alt=RSS src="http://plone.org/rss.gif"> </A><A 
href="http://plone.org/news">News</A> </DT>

... and so on ...


See 
http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/int
ernetexplorer.asp
for the documentation.



More information about the Python-list mailing list