任何人都可以,请向我解释这里发生了什么。当我尝试登录雅虎邮箱时,Python 似乎拒绝工作(使用斜纹布):
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 ”的文件:一个是python文件,另一个是编译的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 25 而不是 Python 26?或者,也许,还有其他原因?