2009-10-05 3 views
1

BR = 브라우저() 페이지 = br.open ('가 http://wow.interzet.ru/news.php?readmore=23') br.form = br.forms() 다음() 인쇄 br.form 나에게 다음과 같은 오류를 제공합니다.ClientForm 버그를 수정하는 방법은 무엇입니까? 기계화 수입 브라우저에서

Traceback (most recent call last): 
    File "C:\Users\roddik\Desktop\mech.py", line 6, in <module> 
    br.form = br.forms().next() 
    File "build\bdist.win32\egg\mechanize\_mechanize.py", line 426, in forms 
    File "D:\py26\lib\site-package\mechanize-0.1.11-py2.6.egg\mechanize\_html.py", line 559, in forms 
    File "D:\py26\lib\site-packages\mechanize-0.1.11-py2.6.egg\mechanize\_html.py", line 225, in forms 
    File "D:\py26\lib\site-packages\clientform-0.2.10-py2.6.egg\ClientForm.py", line 967, in ParseResponseEx 
    File "D:\py26\lib\site-packages\clientform-0.2.10-py2.6.egg\ClientForm.py", line 1100, in _ParseFileEx 
    File "D:\py26\lib\site-packages\clientform-0.2.10-py2.6.egg\ClientForm.py", line 870, in feed 
    File "D:\py26\lib\sgmllib.py", line 104, in feed 
    self.goahead(0) 
    File "D:\py26\lib\sgmllib.py", line 138, in goahead 
    k = self.parse_starttag(i) 
    File "D:\py26\lib\sgmllib.py", line 290, in parse_starttag 
    self._convert_ref, attrvalue) 
    File "D:\py26\lib\sgmllib.py", line 302, in _convert_ref 
    return self.convert_charref(match.group(2)) or \ 
    File "D:\py26\lib\site-packages\clientform-0.2.10-py2.6.egg\ClientForm.py", line 850, in convert_charref 
    File "D:\py26\lib\site-packages\clientform-0.2.10-py2.6.egg\ClientForm.py", line 244, in unescape_charref 

ValueError: invalid literal for int() with base 10: 'e' 

어떻게 해결할 수 있습니까?

편집 :

이 방법으로 수정했습니다. 괜찮 니? 그렇지 않다면, 어떻게 대신?

import ClientForm 
from mechanize import Browser 

def myunescape_charref(data, encoding): 
    if not str(data).isdigit(): return 0 
    name, base = data, 10 
    if name.startswith("x"): 
     name, base= name[1:], 16 
    uc = unichr(int(name, base)) 
    if encoding is None: 
     return uc 
    else: 
     try: 
      repl = uc.encode(encoding) 
     except UnicodeError: 
      repl = "&#%s;" % data 
     return repl 

ClientForm.unescape_charref = myunescape_charref 

답변

1

문제는 & # 후 정수를 찾고이

http://wow.zet/forum/index.php?showtopic=1197&pid=30419&st=0&#entry30419 

위해서는 ClientForm 같은 URL에 의해 발생

이 URL에 #을 가지고 괜찮습니다,하지만해야 htaccess Admin Home English Language Content 으로 & # 문자 인코딩을 의미

+0

글쎄, 나는 전혀 uri의 조각 부분을 필요 없어 같아요. 어떻게 html로 대체하기 위해 머니폼을 바꾸기 전에 클라이언트 폼으로 보내려면 어떻게해야합니까? – Fluffy

관련 문제