誰か、ここで何が起こっているのか説明してくれませんか。Yahoo のメールボックスにログインしようとすると、Python が (twill で) 動作しないようです:
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'
>>>
更新 1 :
(この更新は、Robus に対する私の回答です)
こんにちは、ロバス!!!
まず第一に、あなたが書いたときのタイプミスだと思います:
これが私がしたことです: C:\Python26\Lib\site-packages\twill-0.9-py2.6.egg\twill\other_packages\ に行きました
あなたはこのパスを意味していたと思います:「C:\Python26\Lib\site-packages\twill\other_packages」。そうしないと、「twill-0.9-py2.6.egg」という名前のフォルダー/ディレクトリが表示されません。この名前のファイルしかありません (mechanize のインストール中にダウンロードされたと思われるファイルです)。私の仮定が間違っているかどうか教えてください。
それで、あなたの指示に従って、私はこれをしました:
コンピューターに「C:\Python25\Lib\site-packages\twill\other_packages_mechanize_dist」が見つかりました (ご覧のとおり、python26 はありませんが、python 25 がインストールされています。これも問題になる可能性があります)。
その名前を「_mechanize_dist_backup」に変更しました (フルパスは「C:\Python25\Lib\site-packages\twill\other_packages_mechanize_dist_backup」になりました)
ダウンロードして解凍した「mechanize-0.2.2」を「C:\Python25\Lib\site-packages\twill\other_packages」にコピーしました (フルパスは「C:\Python25\Lib\site-packages\twill\other_packages\ です」機械化-0.2.2 ")
その名前を「_mechanize_dist」に変更しました (フルパスは「C:\Python25\Lib\site-packages\twill\other_packages_mechanize_dist」です)
「 _mechanize_dist_backup 」から「 ClientForm」ファイルをコピーし、「 _mechanize_dist」に貼り付けました(実際、「 ClientForm 」という名前のファイルが 2 つ見つかりました。1つはPython ファイルで、もう 1 つはコンパイル済みの Python ファイルです。両方をコピーして貼り付けました。彼ら)。
それを行った後、これらすべてのコマンドを実行しようとしましたが、最初から行き詰まりました-今ではツイルをインポートすることさえできませんでした:
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
新しく作成された「 _mechanize_dist 」をシステムが認識していないようです。
Python 26 ではなく Python 25 を使用していることが原因でしょうか? それとも、何か別の理由があるのでしょうか。