Perché il Python (con twill) non vuole mi accedere a una casella di posta elettronica di Yahoo qui?
-
26-09-2019 - |
Domanda
Qualcuno può, per favore, mi spieghi cosa sta succedendo qui. Sembra che Python si rifiuta di lavoro (con twill) quando sto cercando di accedere al mia casella di posta su Yahoo:
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
****************************************************************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
****************************************************************
IDLE 1.2.4
>>> import twill
>>> twill.shell.main()
-= Welcome to twill! =-
current page: *empty page*
>> go http://us.yahoo.com
==> at http://us.yahoo.com
current page: http://us.yahoo.com
>> follow Mail
==> at https://login.yahoo.com/config/login_verify2?.intl=us&.src=ym
current page: https://login.yahoo.com/config/login_verify2?.intl=us&.src=ym
>> showforms
Form name=login_form (#1)
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 .tries hidden (None) 1
2 .src hidden (None) ym
3 .md5 hidden (None)
4 .hash hidden (None)
5 .js hidden (None)
6 .last hidden (None)
7 promo hidden (None)
8 .intl hidden (None) us
9 .bypass hidden (None)
10 .partner hidden (None)
11 .u hidden (None) 68gre5567rq16
12 .v hidden (None) 0
13 .challenge hidden (None) 9wKUoOWDdP5Fho0kPfqPKEhPZBdK
14 .yplus hidden (None)
15 .emailCode hidden (None)
16 pkg hidden (None)
17 stepid hidden (None)
18 .ev hidden (None)
19 hasMsgr hidden (None) 0
20 .chkP hidden (None) Y
21 .done hidden (None) http://mail.yahoo.com
22 .pd hidden (None) ym_ver=0&c=&ivt=&sg=
23 pad hidden pad 6
24 aad hidden aad 6
25 login text username
26 passwd password passwd
27 .persistent checkbox persistent [] of ['y']
28 1 .save submi ... .save
current page: https://login.yahoo.com/config/login_verify2?.intl=us&.src=ym
>> fv 1 login *****************
current page: https://login.yahoo.com/config/login_verify2?.intl=us&.src=ym
>> fv 1 passwd ***************
current page: https://login.yahoo.com/config/login_verify2?.intl=us&.src=ym
>> submit
Note: submit is using submit button: name=".save", value=""
Following HTTP-EQUIV=REFRESH to http://us.mg5.mail.yahoo.com/dc/launch?.gx=1&.rand=b3a02cc8lb0aa
current page: http://us.mg5.mail.yahoo.com/dc/launch?.gx=1&.rand=b3a02cc8lb0aa
>> info
Page information:
URL: http://us.mg5.mail.yahoo.com/dc/launch?.gx=1&.rand=b3a02cc8lb0aa
HTTP code: 200
Content type: text/html; charset=utf-8 (HTML)
Page title: Yahoo! Mail
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
twill.shell.main()
File "C:\Python25\Lib\site-packages\twill\shell.py", line 383, in main
shell.cmdloop(welcome_msg)
File "C:\Python25\lib\cmd.py", line 142, in cmdloop
stop = self.onecmd(line)
File "C:\Python25\lib\cmd.py", line 219, in onecmd
return func(arg)
File "C:\Python25\Lib\site-packages\twill\shell.py", line 42, in do_cmd
print '\nERROR: %s\n' % (str(e),)
File "C:\Python25\lib\HTMLParser.py", line 59, in __str__
result = self.msg
AttributeError: 'ParseError' object has no attribute 'msg'
>>>
Aggiorna 1 :
(questo aggiornamento è la mia risposta a Robus)
Ciao, Robus !!!
Prima di tutto, suppongo che era un errore di battitura quando hai scritto:
Ecco quello che ho fatto: andato alla C: \ Python26 \ lib \ site-packages \ Saia-0,9-py2.6.egg \ twill \ other_packages \
Penso che dire questo percorso: " C: \ Python26 \ lib \ site-packages \ twill \ other_packages ". In caso contrario, non riesco a vedere un tale cartella / directory si chiama " Saia-0,9-py2.6.egg " - c'è solo un file con questo nome (quello che penso è stato scaricato durante . l'installazione di mechanize) la prego di dirmi se la mia ipotesi è sbagliata -. posso anche non essere vedere qualcosa di molto evidente qui come io sono solo un principiante
Quindi, seguendo tue istruzioni, ho fatto questo:
-
ho trovato " C: \ Python25 \ lib \ site-packages \ twill \ other_packages_mechanize_dist " sul mio computer (come potete vedere, non ho Python26, ma piuttosto pitone 25 installato - che potrebbe anche essere un problema)
-
ha cambiato nome in " _mechanize_dist_backup " (il percorso completo ora essere " C: \ Python25 \ lib \ site-packages \ twill \ other_packages_mechanize_dist_backup ")
-
copiato il mio scaricato e decompresso " mechanize-0.2.2 " in " C: \ Python25 \ lib \ site-packages \ twill \ other_packages " ( il percorso completo benessere " C: \ Python25 \ lib \ site-packages \ twill \ other_packages \ mechanize-0.2.2 ")
-
ha cambiato nome in " _mechanize_dist " (il percorso completo benessere " C: \ Python25 \ lib \ site-packages \ twill \ other_packages_mechanize_dist ")
-
Copiato " ClientForm " file " _mechanize_dist_backup " e incollato in " _mechanize_dist " (in realtà, ho trovato due file lì chiamato " ClientForm ":. uno è un file di pitone, un altro è un file python compilato - ho copiato e incollato entrambi)
Dopo aver fatto questo, ho provato a fare funzionare tutti i comandi, ma ho bloccato a fin dall'inizio - non ho potuto anche importare twill ora:
IDLE 1.2.4
>>> import twill
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import twill
File "C:\Python25\Lib\site-packages\twill\__init__.py", line 52, in <module>
from shell import TwillCommandLoop
File "C:\Python25\Lib\site-packages\twill\shell.py", line 9, in <module>
from twill import commands, parse, __version__
File "C:\Python25\Lib\site-packages\twill\commands.py", line 7, in <module>
import _mechanize_dist as mechanize
ImportError: No module named _mechanize_dist
Sembra che il sistema non riconosce il neo-creato " _mechanize_dist ".
Potrebbe essere perché ho Python 25 invece di 26 Python? O, forse, c'è qualche altra ragione?
Soluzione
Le bugie problema in Mechanize. È necessario l'ultima versione
su
git clone git://github.com/jjlee/mechanize.git
cd mechanize
python setup.py install