2010-04-21 4 views
6

TWILL을 "StackOverflow"(매우 유용합니다.) (HERE)의 매우지지적인 멤버를 통해 제 컴퓨터에 성공적으로 설치했으며 능 직물 문서 페이지에서 간단한 예제 중 하나를 실행하려고했습니다. 해당 페이지 HERE). 다음은 그 예는 다음과 같습니다설치된 능직을 사용하여 웹 사이트에 로그인하는 방법은 무엇입니까?

alt text http://roundcan.narod.ru/some_pics/19.jpg

하는 www.slash.orglynxye과 비밀번호가 포유 동물이다에서의 내 이름을 가정 해 봅시다. 파이썬 프롬프트에 예제 코드를 입력하려고하면 "Enter"를 클릭하여 새 행을 시작하면 바로 오류 메시지가 나타나기 때문에 입력 한 코드의 첫 번째 행만 입력 할 수 있습니다.

내 단말기에이 코드를 입력하려고 할 때

alt text http://roundcan.narod.ru/some_pics/20.jpg

같은 이 발생합니다

alt text http://roundcan.narod.ru/some_pics/21.jpg

내가 여기에 몇 가지 기본 놓치지 생각합니다. 아마도, 그 코드를 포함하고 그 파일을 어떻게 든 실행하는 파일을 생성해야하지만, 실제로 그 파일을 생성해야하는 위치와 확장 할 위치를 필요로하지 않습니다.

아무도 도와 줄 수 있습니까?

답변

4

는 대신 파이썬 쉘, 능 직물 쉘 내부의 해당 명령을 실행해야

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

-= Welcome to twill! =- 

current page: *empty page* 
>>

당신이 >>

를 참조하거나 능 직물 쉬 파일

2 만 개 행이있을 때 당신은 능직 명령을 넣을 수 있습니다
import twill.shell 
twill.shell.main() 

2 줄을 파이썬 프롬프트에 붙여 넣으면됩니다.

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

안녕하세요, S.Mark !!! 그 능직 껍데기가 어디에 있는지 알고 있니? 내 "능 직물 -0.9"폴더에는 "능직"이라는 파일이 있습니다. 그게 능직 껍질인가요? 이상하다, 그것은 비어있다 - 나는 확장이 없다는 것을 의미한다. – brilliant

+1

안녕하세요, 예,'python twill-sh'과 같이 실행합니다. – YOU

+0

@brilliant, 답변을 업데이트했습니다. – YOU

0

꺾쇠 괄호는 문자 그대로 입력 할 수 없습니다. 그들은 단지 당신이 가치를 입력해야한다는 것을 나타 내기 위해서입니다. 대신

setlocal username lynxye

을보십시오.

+0

방금 ​​시도했는데 동일한 구문 오류 메시지가 표시됩니다. – brilliant

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

그것을 또한 쉽게 프롬프트에서 사용하는 방법이 아니다 html로

+0

Thakn You, amadain !!! 당신의 코드의 두 번째 라인 (>>> import re)은 무엇을합니까? – brilliant

+1

import 정규 표현식 모듈을 다시 가져옵니다. 파이썬에 익숙하지 않니? 나는 www.python.org에서 튜토리얼을 실행하는 것이 좋습니다. 파이썬을 시작하기에 좋은 튜토리얼입니다. – amadain

+0

감사합니다, amadain !!! 예, 저는 파이썬에서 초보자입니다. 이 튜토리얼을 참조 해 주셔서 감사합니다. 많은 질문이 거기에 설명되어 있습니다! – brilliant

0

을 구문 분석 BeautifulSoup로를 사용하는 경우.

키 - 값 쌍을 대괄호로 묶어야합니다.마찬가지로,

SETLOCAL ('UNAME', 'XYZ')

SETLOCAL ('비밀번호', '123')

이동 ('http://abc.org')

FV ('1', 'foo', 'bar')

관련 문제