インストールされたTwillを使用してWebサイトにログインする方法は?

StackOverflow https://stackoverflow.com/questions/2680185

  •  30-09-2019
  •  | 
  •  

質問

正常にインストールしました ツイル 「StackoverFlow」の非常に協力的なメンバーの1人の助けを借りて、私のコンピューターで(あなたはそれをチェックすることができます ここ)そして、Twillドキュメントページで簡単な例の1つを実行しようとしました(そのページを見ることができます ここ)。その例は次のとおりです。

alt text
(ソース: narod.ru)

私のユーザー名をオンにしましょう www.slash.orglynxye そして私のパスワードはです 哺乳類. 。その例をPythonプロンプトに入力しようとすると、「入力」をクリックして新しい行を開始すると、すぐにエラーメッセージが表示されるため、コードの最初の行を入力して入力できます。

alt text
(ソース: narod.ru)

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

alt text
(ソース: narod.ru)

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

誰でもこれを手伝ってくれませんか?

役に立ちましたか?

解決

Pythonシェルの代わりに、Twill Shell内でそれらのコマンドを実行する必要があります

D:\tmp\twill-0.9>Python Twill-sh

 -= Welcome to twill! =-

current page:  *empty page*
>>

表示されたら、Twillコマンドを配置できます >>

または、Twill-Shファイルに2つのみの行があります

import twill.shell
twill.shell.main()

その2行をPythonプロンプトにコピーするだけです。

>>> 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*
>>

他のヒント

これはそれをします:

>>> 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  
>>>

HTMLを解析するためにBeautifulSoupを使用する場合も簡単です

角度ブラケットは文字通り入力することを意図していません。彼らはあなたが値を入力する必要があることを示すためにただそこにいます。試す

setlocal username lynxye

代わりは。

それはプロンプトで使用する方法ではありません。

ブラケットにキー価値ペアを囲む必要があります。好き、

setlocal( 'uname'、 'xyz')

setlocal( 'password'、'123 ')

行く('http://abc.org')

fv( '1'、 'foo'、 'bar')

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top