Как войти на сайт с установленной саржи?

Я только что успешно установил TWILL на моем компьютере с помощью одного очень поддерживающего члена "StackOverflow" (вы можете проверить это ЗДЕСЬ) и попытался запустить один из простых примеров на странице документации по сарже (вы можете увидеть эту страницу ЗДЕСЬ). Вот тот пример:

alt text
(источник: narod.ru)

Допустим, мое имя пользователя на www.slash.org - lynxye, а мой пароль - млекопитающее. Когда я пытаюсь ввести этот пример кода в командную строку Python, я могу набрать и ввести только первую строку кода, потому что, когда я нажимаю «Ввод», чтобы начать новую строку, я сразу получаю несколько сообщений об ошибках:

alt text
(источник: narod.ru)

То же самое происходит, когда я пытаюсь ввести этот код в свой терминал:

alt text
(источник: narod.ru)

Думаю, здесь я упускаю некоторые основы. Возможно, мне нужно создать файл, который бы содержал этот код, а затем каким-то образом запустить этот файл, но я действительно не знаю, где мне нужно создать этот файл и с каким расширением.

Кто-нибудь может мне с этим помочь?


person brilliant    schedule 21.04.2010    source источник


Ответы (4)


Вам нужно запускать эти команды внутри оболочки twill вместо оболочки 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*
>>
person YOU    schedule 21.04.2010
comment
Здравствуйте, С.Марк !!! Вы знаете, где может находиться эта саржа? В моей папке twill-0.9 есть один файл с названием twill-sh. Это ракушка из саржи? Странно, оно пустое - то есть без расширения. - person brilliant; 21.04.2010
comment
Привет, да, беги как python twill-sh - person YOU; 21.04.2010
comment
или просто переименуйте его в twill-sh.py :-), тогда вы можете сделать twill-sh.py в командной строке. - person YOU; 21.04.2010

Это сделает это:

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

person amadain    schedule 20.05.2010
comment
Thakn You, amadain !!! Подскажите, пожалуйста, что делает вторая строка Вашего кода (››› import re)? - person brilliant; 21.05.2010
comment
import re - импортировать модуль регулярных выражений. Вы не привыкли к питону? Я бы посоветовал пройти обучение на www.python.org. Это очень хороший учебник, который поможет вам начать работу с Python. - person amadain; 21.05.2010
comment
Спасибо, amadain !!! Да, я просто новичок в питоне. Спасибо, что направили меня к этому руководству - многие мои вопросы объясняются там! - person brilliant; 24.05.2010

Угловые скобки не предназначены для буквального ввода; они просто указывают, что вы должны ввести значение. Пытаться

setlocal username lynxye

вместо.

person Etaoin    schedule 21.04.2010

Это не способ использовать в подсказке.

Пару "ключ-значение" нужно заключить в квадратные скобки. Нравится,

setlocal ('uname', 'xyz')

setlocal ('пароль', '123')

перейти ('http://abc.org')

fv ('1', 'foo', 'бар')

person Geetanjali    schedule 01.08.2013