كيفية تسجيل الدخول إلى موقع ويب باستخدام Twill المثبت؟

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

  •  30-09-2019
  •  | 
  •  

سؤال

لقد قمت بتثبيت فقط بنجاح نسيج قطني طويل على جهاز الكمبيوتر الخاص بي بمساعدة عضو واحد داعم للغاية في "Stackoverflow" (يمكنك التحقق من ذلك هنا) وحاولت تشغيل أحد الأمثلة البسيطة على صفحة توثيق Twill (يمكنك رؤية تلك الصفحة هنا). هذا هو المثال:

alt text
(مصدر: narod.ru)

دعنا نقول اسم المستخدم الخاص بي www.slash.org هو Lynxye وكلمة المرور الخاصة بي هي الحيوان الثديي. عندما أحاول إدخال رمز المثال في موجه Python الخاص بي ، يمكنني فقط الكتابة وإدخال السطر الأول من الرمز لأنه عند النقر فوق "إدخال" لبدء سطر جديد ، أحصل على بعض رسائل الخطأ على الفور:

alt text
(مصدر: narod.ru)

يحدث الشيء نفسه عندما أحاول إدخال هذا الرمز في المحطة الخاصة بي:

alt text
(مصدر: narod.ru)

أعتقد أنني أفتقد بعض الأساسيات هنا. ربما ، أحتاج إلى إنشاء ملف يحتوي على هذا الرمز ثم تشغيل هذا الملف بطريقة أو بأخرى ، لكنني لا أعرف حقًا أين أحتاج إلى إنشاء هذا الملف ومع أي extensdion.

هل يمكن لأي شخص ، من فضلك ، مساعدتي في هذا؟

هل كانت مفيدة؟

المحلول

تحتاج إلى تشغيل تلك الأوامر داخل Twill Shell ، بدلاً من Python Shell

D:\tmp\twill-0.9>بيثون تلي

 -= Welcome to twill! =-

current page:  *empty page*
>>

يمكنك وضع أوامر Twill عندما ترى >>

أو يوجد خطان فقط في ملف Twill-Sh

import twill.shell
twill.shell.main()

يمكنك فقط نسخ لصق ذلك خطين إلى مطالبة بيثون.

>>> استيراد 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

في حين أن.

هذه ليست الطريقة للاستخدام في المطالبة.

تحتاج إلى إرفاق زوج القيمة الرئيسية بين قوسين. يحب،

setlocal ('uname' ، 'xyz')

setlocal ('كلمة المرور' ، '123')

يذهب('http://abc.org')

FV ('1' ، 'Foo' ، 'Bar')

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top