[python-win32] Problem with Python win32com while loading facebook homepage
Mike Driscoll
mdriscoll at co.marshall.ia.us
Mon Jul 27 20:31:18 CEST 2009
Adrien,
> Hi dear members of the python-win32 python mailing list,
>
> I'm trying to connect to my facebook account.. I'd like to automate
> some tasks like closing applications requests, and why not automate
> task for application games of facebook, if I arrive to do this.
>
> But I can't arrive to connect to homepage..
> First, without win32com, the code page return by the script was a
> javascript script :
>
> <script type="text/javascript">
> (function(loc) { if (loc.pathname == '/') { return; } var uri_re =
> /^(?:(?:[^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/;
> var target_domain = ''; loc.href.replace(uri_re, function(all,
> path, query, frag) { var dst, src; dst = src = path + (query ? '?'
> + query : ''); if (frag) { if (frag.charAt(0) == '/') { dst =
> frag.replace(/^\/+/, '/') .replace(/_fb_qsub=([^&]+)&?/,
> function(all, domain){ if (domain.substring(domain.length - 13) ==
> '.facebook.com <http://facebook.com>') { target_domain =
> 'http://'+domain; } return ''; }); } else if (/&|=/.test(frag)) {
> var q = {}; var m = frag.match(/([^#]*)(#.*)?/); var arr =
> (query||'').split('&').concat((m[1]||'').split('&')); for (var
> i=0, length=arr.length; i<length; i++) { var t =
> arr[i].split('='); if (t.length && t[0] != '') { q[t[0]] = t[1]; }
> } var s = []; for (var i in q) { s.push(i+ (q[i]?'='+q[i]:'')); }
> dst = path+'?'+s.join('&')+(m[2]||''); } } dst = "" + dst; if (dst
> != src) { window.location.replace(target_domain + dst); } });
> })(window.location);
> </script>
> <script>window.location.replace("http:\/\/www.facebook.com
> <http://www.facebook.com>\/common\/browser.php");</script>
>
>
>
> After reading a little on the web ( I searched a solution to execute
> javascript code from python), I've found the next added lines, which
> use win32com. I have installed pywin32-214 (I use python 2.6.2).
>
> See below my code :
>
> # -*- coding:Utf-8 -*-
> #!/usr/bin/python
> import httplib
> import urllib
>
> Connexion = httplib.HTTP('www.facebook.com <http://www.facebook.com>')
> Connexion.putrequest('GET', '/home.php')
> Connexion.putheader('Host', 'www.facebook.com
> <http://www.facebook.com>')
> Connexion.putheader('Accept', 'text/html')
> Connexion.putheader('Cookie', 'the_long_cookie_from_facebook')
> Connexion.endheaders()
> ErrCode, ErrMsg, Headers = Connexion.getreply()
> Handle = Connexion.getfile()
> Buffer = Handle.read()
>
> from win32com.client.gencache import EnsureDispatch
> ie = EnsureDispatch('InternetExplorer.Application')
> ie.Navigate('http://www.facebook.com')
> print ie.Document.documentElement.innerHTML
>
>
> When I execute the script, I have this error :
>
> >>>
> Traceback (most recent call last):
> File "C:\Documents and
> Settings\adlemair\Bureau\exos\connectFacebook.py", line 18, in
> <module>
> from win32com.client.gencache import EnsureDispatch
> File "C:\Python26\lib\site-packages\win32com\__init__.py", line
> 5, in <module>
> import win32api, sys, os
> ImportError: DLL load failed: Le module spécifié est introuvable.
>
>
> Do you know why ? Do you arrive to execute this script on your side ?
>
>
> Thank you so much for your advise
>
> Best regards,
>
Why not just use the pyFacebook module? It wraps Facebook's API and
would probably be more reliable for communicating with their services.
Here's a link: http://wiki.developers.facebook.com/index.php/Python
- Mike
More information about the python-win32
mailing list