6

「StackOverflow」の非常に協力的なメンバーの助けを借りて、コンピューターにTWILLを正常にインストールし(ここで確認できます)、 twillドキュメントページで簡単な例の1つを実行しようとしました(そのページを見ることができますここで)。その例を次に示します。

代替テキスト
(ソース: narod.ru )

www.slash.orgでの私のユーザー名がlynxyeで、パスワードが哺乳類だとしましょう。そのサンプル コードを Python プロンプトに入力しようとすると、コードの最初の行しか入力できません。[Enter] をクリックして新しい行を開始すると、すぐにいくつかのエラー メッセージが表示されるためです。

代替テキスト
(ソース: narod.ru )

このコードを端末に入力しようとすると、同じことが起こります。

代替テキスト
(ソース: narod.ru )

ここでいくつかの基本を見逃していると思います。おそらく、そのコードを含むファイルを作成し、そのファイルを何らかの方法で実行する必要がありますが、そのファイルを作成する必要がある場所と拡張子がわかりません。

誰でも、これで私を助けてくれますか?

4

4 に答える 4

4

Pythonシェルではなく、ツイルシェル内でこれらのコマンドを実行する必要があります

D:\tmp\twill-0.9>python twill-sh

 -= Welcome to twill! =-

current page:  *empty page*
>>

見たらツイルコマンドを入れることができます>>

または、twill-sh ファイルに 2 行しかない

import twill.shell
twill.shell.main()

その2行をコピーしてpythonプロンプトに貼り付けるだけです。

>>> import twill.shell
>>> twill.shell.main()

 -= Welcome to twill! =-

current page:  *empty page*
>> ?

Undocumented commands:
======================
add_auth             fa           info             save_html           title
add_extra_header     find         load_cookies     setglobal           url
agent                follow       notfind          setlocal
back                 formaction   redirect_error   show
clear_cookies        formclear    redirect_output  show_cookies
clear_extra_headers  formfile     reload           show_extra_headers
code                 formvalue    reset_browser    showforms
config               fv           reset_error      showhistory
debug                get_browser  reset_output     showlinks
echo                 getinput     run              sleep
exit                 getpassword  runfile          submit
extend_with          go           save_cookies     tidy_ok

current page:  *empty page*
>>
于 2010-04-21T04:02:56.477 に答える
3

これはそれを行います:

>>> import twill.commands
>>> import re
>>> 
>>> class browser:
...    def __init__(self, url="http://www.slashdot.org"):
...       self.a=twill.commands
...       self.a.config("readonly_controls_writeable", 1)
...       self.b = self.a.get_browser()
...       self.b.set_agent_string("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14")
...       self.b.clear_cookies()
...       self.url=url
...    def slashdot(self, loginName, passwd):
...       self.b.go(self.url)
...       f = self.b.get_form("1")
...       regexp = re.compile("Log In")
...       link = self.b.find_link(regexp)
...       if link:
...          self.b.follow_link(link)
...          f=self.b.get_form("2")
...          f["unickname"] = loginName
...          f["upasswd"] = passwd 
...          self.a.fv("2", "userlogin", "") 
... 
>>> 
>>> t=browser()
>>> t.slashdot("username", "password")
==> at http://slashdot.org/
==> at http://slashdot.org/my/login
forcing read-only form field to writeable  
>>>

また、BeautifulSoupを使用してHTMLを解析すると簡単になります

于 2010-05-20T20:02:31.653 に答える
0

山かっこは文字通り入力するためのものではありません。値を入力する必要があることを示すためだけに表示されます。試す

setlocal username lynxye

代わりは。

于 2010-04-21T03:53:49.873 に答える