Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:mechanize找不到所有表单输入_Python_Mechanize - Fatal编程技术网

Python:mechanize找不到所有表单输入

Python:mechanize找不到所有表单输入,python,mechanize,Python,Mechanize,我需要填写name=email,但mechanize say name=email不存在,请查看输出。为什么我找不到它?我必须接受其他命令吗?或者我可以用替换html文件中的一些文本来解决这个问题吗 <input class="box410" type="text" VCARD_NAME="vCard.Email" id="email" name="email" value="" tabindex="17" placeholder="Kontakt E-Mail Adresse" /&

我需要填写name=email,但mechanize say name=email不存在,请查看输出。为什么我找不到它?我必须接受其他命令吗?或者我可以用替换html文件中的一些文本来解决这个问题吗

  <input class="box410" type="text" VCARD_NAME="vCard.Email" id="email" name="email" value="" tabindex="17" placeholder="Kontakt E-Mail Adresse" />
输出:

  <regForm POST https://reg.webmail.freenet.de/freenet/Registration application/x-www-form-urlencoded
  <TextControl(localpart=)>
  <RadioControl(gender=[HERR, FRAU, FIRMA])>
  <TextControl(business=)>
  <TextControl(firstname=)>
  <TextControl(lastname=)>
  <TextControl(zip=)>
  <TextControl(town=)>
  <TextControl(street=)>
  <TextControl(number=)>
  <SelectControl(bday=[*, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31])>
  <SelectControl(bmonth=[*, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12])>
  <SelectControl(byear=[*])>
  <PasswordControl(password1=)>
  <PasswordControl(password2=)>
  <TextControl(code=)>
  <HiddenControl(patrick=MjQyMDY5NC1iNDkwNzU0OThlYWE5YTM5OTgyMjk3NzA1MjQ5NzU1ZS0xMzk2NDU1NDIyLTg4ZWNjMjIzZTQzMw==) (readonly)>
  <CheckboxControl(agb=[yes])>
  <ImageControl(<None>=Senden)>
  <HiddenControl(mandant=freenet) (readonly)>
  <HiddenControl(action=Registration) (readonly)>
  <HiddenControl(JSEnabled=0) (readonly)>
  <HiddenControl(productID=2001004) (readonly)>
  <HiddenControl(startDate=2014-04-02T18:17:02+02:00) (readonly)>
  <HiddenControl(orderType=MAILBASIC) (readonly)>
  <HiddenControl(referer=) (readonly)>
  <HiddenControl(mitarbeiter=0) (readonly)>
  <HiddenControl(cid=) (readonly)>
  <HiddenControl(pwdstrength=inaktiv) (readonly)>
  <HiddenControl(pwdstrength2=inaktiv) (readonly)>
  <HiddenControl(altDomain=) (readonly)>
  <HiddenControl(pidUrlValue=) (readonly)>
  <HiddenControl(epidUrlValue=) (readonly)>
  <HiddenControl(ipidUrlValue=) (readonly)>
  <HiddenControl(pcUrlValue=) (readonly)>
  <HiddenControl(subpcUrlValue=) (readonly)>
  <HiddenControl(scpacoUrlValue=) (readonly)>
  <HiddenControl(scevidUrlValue=) (readonly)>
  <HiddenControl(ccUrlValue=) (readonly)>
  <HiddenControl(pidCookieValue=) (readonly)>
  <HiddenControl(epidCookieValue=) (readonly)>
  <HiddenControl(ipidCookieValue=) (readonly)>
  <HiddenControl(scevidCookieValue=) (readonly)>
  <HiddenControl(scpacoCookieValue=) (readonly)>
  <HiddenControl(subpcCookieValue=) (readonly)>
  <HiddenControl(pcCookieValue=) (readonly)>>
Traceback (most recent call last):
  File "C:\Users\Lucas\Documents\MEGAsync_Python\Hitnews generator\email freenet.py", line 47, in <module>
    browser.form["email"] = "testmail@aol.de" #Kontaktemailadresse
  File "build\bdist.win32\egg\mechanize\_form.py", line 2780, in __setitem__
control = self.find_control(name)
  File "build\bdist.win32\egg\mechanize\_form.py", line 3101, in find_control
return self._find_control(name, type, kind, id, label, predicate, nr)
  File "build\bdist.win32\egg\mechanize\_form.py", line 3185, in _find_control
raise ControlNotFoundError("no control matching "+description)
ControlNotFoundError: no control matching name 'email'
输出:

  <regForm POST https://reg.webmail.freenet.de/freenet/Registration application/x-www-form-urlencoded
  <TextControl(localpart=)>
  <RadioControl(gender=[HERR, FRAU, FIRMA])>
  <TextControl(business=)>
  <TextControl(firstname=)>
  <TextControl(lastname=)>
  <TextControl(zip=)>
  <TextControl(town=)>
  <TextControl(street=)>
  <TextControl(number=)>
  <SelectControl(bday=[*, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31])>
  <SelectControl(bmonth=[*, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12])>
  <SelectControl(byear=[*])>
  <PasswordControl(password1=)>
  <PasswordControl(password2=)>
  <TextControl(code=)>
  <HiddenControl(patrick=MjQyMDY5NC1iNDkwNzU0OThlYWE5YTM5OTgyMjk3NzA1MjQ5NzU1ZS0xMzk2NDU1NDIyLTg4ZWNjMjIzZTQzMw==) (readonly)>
  <CheckboxControl(agb=[yes])>
  <ImageControl(<None>=Senden)>
  <HiddenControl(mandant=freenet) (readonly)>
  <HiddenControl(action=Registration) (readonly)>
  <HiddenControl(JSEnabled=0) (readonly)>
  <HiddenControl(productID=2001004) (readonly)>
  <HiddenControl(startDate=2014-04-02T18:17:02+02:00) (readonly)>
  <HiddenControl(orderType=MAILBASIC) (readonly)>
  <HiddenControl(referer=) (readonly)>
  <HiddenControl(mitarbeiter=0) (readonly)>
  <HiddenControl(cid=) (readonly)>
  <HiddenControl(pwdstrength=inaktiv) (readonly)>
  <HiddenControl(pwdstrength2=inaktiv) (readonly)>
  <HiddenControl(altDomain=) (readonly)>
  <HiddenControl(pidUrlValue=) (readonly)>
  <HiddenControl(epidUrlValue=) (readonly)>
  <HiddenControl(ipidUrlValue=) (readonly)>
  <HiddenControl(pcUrlValue=) (readonly)>
  <HiddenControl(subpcUrlValue=) (readonly)>
  <HiddenControl(scpacoUrlValue=) (readonly)>
  <HiddenControl(scevidUrlValue=) (readonly)>
  <HiddenControl(ccUrlValue=) (readonly)>
  <HiddenControl(pidCookieValue=) (readonly)>
  <HiddenControl(epidCookieValue=) (readonly)>
  <HiddenControl(ipidCookieValue=) (readonly)>
  <HiddenControl(scevidCookieValue=) (readonly)>
  <HiddenControl(scpacoCookieValue=) (readonly)>
  <HiddenControl(subpcCookieValue=) (readonly)>
  <HiddenControl(pcCookieValue=) (readonly)>>
Traceback (most recent call last):
  File "C:\Users\Lucas\Documents\MEGAsync_Python\Hitnews generator\email freenet.py", line 47, in <module>
    browser.form["email"] = "testmail@aol.de" #Kontaktemailadresse
  File "build\bdist.win32\egg\mechanize\_form.py", line 2780, in __setitem__
control = self.find_control(name)
  File "build\bdist.win32\egg\mechanize\_form.py", line 3101, in find_control
return self._find_control(name, type, kind, id, label, predicate, nr)
  File "build\bdist.win32\egg\mechanize\_form.py", line 3185, in _find_control
raise ControlNotFoundError("no control matching "+description)
ControlNotFoundError: no control matching name 'email'

您应该首先选择要使用的表单,然后按id指定元素。在您所引用的网页中,该元素称为localpart。以下是示例代码:

import mechanize

br = mechanize.Browser()
response = br.open("https://reg.webmail.freenet.de/freenet/Registration")

# Check response here
# :
# :

form = -1
count = 0
for frm in br.forms():  
    if str(frm.attrs["id"])=="regForm":
        form = count
        break

    count += 1

# Check if form is not -1
# :
# :

br.select_form(nr=form)
或者,如果您知道只有一个表单,您可以简单地执行br。选择\u formnr=0

然后,最后:

br.form["localpart"] = "test@test.com"

这看起来像个bug,你可以在这里存档:谢谢!但是我不能自己解决这个问题吗?我检查了你想要使用的网页。你的身份证不正确。这不是电子邮件,而是本地部分。对不起,我没有粘贴我的完整代码。现在我已经编辑了第一条注释中的代码。