Как войти на сайт, использующий установленные Twill?
Вопрос
Я только что успешно установил Твиль на моем компьютере с помощью одного очень поддерживающего участника «Stackoverflow» (вы можете проверить это ЗДЕСЬ) и попытался запустить один из простых примеров на странице документации Twild (вы можете увидеть эту страницу ЗДЕСЬ). Вот что пример:
(источник: narod.ru.)
Допустим, мое имя пользователя на www.slash.org. является Линсиэ и мой пароль млекопитающее. Отказ Когда я пытаюсь войти в этот пример код в мою подсказку Python, я могу вводить только и ввести только первую строку кода, потому что когда я нажимаю на «Enter», чтобы начать новую строку, я сразу же получаю несколько сообщений об ошибках:
(источник: narod.ru.)
То же самое происходит, когда я пытаюсь ввести этот код в мой терминал:
(источник: narod.ru.)
Я думаю, что я пропустил некоторые основы здесь. Возможно, мне нужно создать файл, который будет содержать этот код, а затем запускать этот файл как-то, но я действительно не знаю, где мне нужно создать этот файл и с каким расширением.
Кто-нибудь может, пожалуйста, помогите мне с этим?
Решение
Вам необходимо запустить эти команды внутри оболочки Twill, вместо Shell Python
D:\tmp\twill-0.9>Python Twill-Sh
-= Welcome to twill! =-
current page: *empty page*
>>
Вы можете поставить команды Twill, когда вы видите >>
Или есть 2 только строки в Twill-Sh File
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
>>>
Также проще, если вы используете BeautifulSoup для анализа HTML
Угольные скобки не должны вводиться буквально; Они просто там, чтобы указать, что вы должны ввести значение. Пытаться
setlocal username lynxye
вместо.
Это не способ использования в подсказке.
Вам нужно приложить пару клавиш в скобках. Нравиться,
Сетлокал («немали», «XYZ»)
SetLocal («пароль», «123»)
идти('http://abc.org.')
FV ('1', 'foo', 'bar')