2010-04-21 34 views
6

Tôi vừa cài đặt thành công TWILL trên máy tính của mình với sự giúp đỡ của một thành viên hỗ trợ "StackOverflow" (bạn có thể xem HERE) và đã cố chạy một trong các ví dụ đơn giản trên trang tài liệu twill (bạn có thể thấy trang đó HERE). Dưới đây là ví dụ rằng:Làm thế nào để đăng nhập vào một trang web bằng cách sử dụng twill được cài đặt?

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

Hãy nói rằng tên của tôi trên www.slash.orglynxye và mật khẩu của tôi là động vật có vú. Khi tôi cố gắng nhập mã ví dụ đó vào dấu nhắc Python, tôi chỉ có thể nhập và nhập dòng đầu tiên của mã vì khi tôi nhấp vào "Enter" để bắt đầu một dòng mới, tôi nhận được một số thông báo lỗi ngay lập tức:

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

cùng xảy ra khi tôi cố gắng để nhập mã này vào thiết bị đầu cuối của tôi:

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

tôi nghĩ tôi bỏ lỡ một số vấn đề cơ bản ở đây. Có lẽ, tôi cần phải tạo một tập tin có chứa mã đó và sau đó chạy tập tin đó bằng cách nào đó, nhưng tôi thực sự không biết nơi tôi cần phải tạo tập tin đó và với những gì extensdion.

Bất kỳ ai, vui lòng, giúp tôi với điều này?

Trả lời

4

Bạn cần phải chạy các lệnh bên trong vỏ twill, thay vì vỏ python

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

-= Welcome to twill! =- 

current page: *empty page* 
>>

Bạn có thể đặt lệnh chéo khi bạn nhìn thấy >>

hoặc có 2 chỉ dòng trong tập tin twill-sh

import twill.shell 
twill.shell.main() 

bạn chỉ có thể sao chép dán 2 dòng đó vào dấu nhắc 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* 
>>
+0

Xin chào, S.Mark !!! Bạn có biết vị trí đó có thể được đặt ở đâu? Có một tệp có tên "twill-sh" trong thư mục "twill-0.9" của tôi. Đó có phải là vỏ ốc chéo không? Lạ thật, nó trống - Ý tôi là, nó không có phần mở rộng. – brilliant

+1

Xin chào, vâng, chạy như 'python twill-sh' – YOU

+0

@brilliant, tôi đã cập nhật câu trả lời của mình. – YOU

0

Dấu ngoặc nhọn không có nghĩa là được nhập theo nghĩa đen; họ chỉ ở đó để cho biết bạn nên nhập một giá trị. Hãy thử số điện thoại

setlocal username lynxye

thay thế.

+0

Tôi vừa thử - có cùng thông báo lỗi cú pháp. – brilliant

3

này sẽ làm điều đó:

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

của nó cũng dễ dàng hơn nếu bạn sử dụng để phân tích BeautifulSoup html

+0

Thakn Bạn, amadain !!! Bạn có thể, xin vui lòng, cho tôi biết, dòng thứ hai của mã của bạn (>>> nhập khẩu lại) làm gì? – brilliant

+1

nhập lại nhập khẩu mô-đun biểu thức chính quy. Bạn không quen với python? Tôi sẽ đề nghị chạy qua hướng dẫn trên www.python.org. Nó là một hướng dẫn rất tốt để giúp bạn bắt đầu trên python – amadain

+0

Cảm ơn bạn, amadain !!! Vâng, tôi chỉ là một người mới bắt đầu trong python. Cảm ơn bạn đã giới thiệu cho tôi hướng dẫn đó - rất nhiều câu hỏi của tôi được giải thích ở đó! – brilliant

0

Đó không phải là cách để sử dụng tại dấu nhắc.

Bạn cần phải bao gồm cặp khóa-giá trị trong dấu ngoặc vuông.Giống như,

setlocal ('uname', 'xyz')

setlocal ('password', '123')

đi (' http://abc.org ')

fv (' 1' , 'foo', 'bar')

Các vấn đề liên quan