选择表单时Python机械化错误

时间:2015-03-05 23:45:02

标签: python python-2.7 mechanize

我要提交的网站代码::: FORM PART OF WEBSIDE CODE


当我尝试选择表单时出现错误

Traceback (most recent call last):
  File "call.py", line 35, in <module>
    loginAccount()
  File "call.py", line 15, in loginAccount
    browser.select_form(nr = 0)
  File "/usr/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 499, in select_form
    global_form = self._factory.global_form
  File "/usr/lib/python2.7/dist-packages/mechanize/_html.py", line 544, in __getattr__
    self.forms()
  File "/usr/lib/python2.7/dist-packages/mechanize/_html.py", line 557, in forms
    self._forms_factory.forms())
  File "/usr/lib/python2.7/dist-packages/mechanize/_html.py", line 237, in forms
    _urlunparse=_rfc3986.urlunsplit,
  File "/usr/lib/python2.7/dist-packages/mechanize/_form.py", line 844, in ParseResponseEx
    _urlunparse=_urlunparse,
  File "/usr/lib/python2.7/dist-packages/mechanize/_form.py", line 981, in _ParseFileEx
    fp.feed(data)
  File "/usr/lib/python2.7/dist-packages/mechanize/_form.py", line 760, in feed
    raise ParseError(exc)
mechanize._form.ParseError: expected name token at '<!\\\\])/g,"\\\\$1").rep'

源代码(我在这里写了#ERROR OCCUR的评论):

   browser = mechanize.Browser()
   browser.set_handle_robots(False)
   browser.set_handle_refresh(False)
   browser.open("https://accounts.google.com/ServiceLoginAuth")
   browser.select_form(nr = 0)
   browser.form['Email'] = "MYMAIL@gmail.com"
   browser.form['Passwd'] = "MYPASWORD"
   browser.submit() # Till the here, works fine. I can login.

   resp = browser.open("https://accounts.google.com/b/0/SmsAuthSettings?Setup=1")
   resp = resp.read()
   browser.select_form(nr = 0) # ERROR OCCUR HERE

当我删除browser.select_form(nr = 0)时,程序运行正常。 我该怎么办?

1 个答案:

答案 0 :(得分:3)

使用更强大的解析器, 例如 browser = mechanize.Browser(factory = mechanize.RobustFactory())

查看此链接以获取更多帮助: http://www.thecodingforums.com/threads/mechanize-select_form-issue.359575/