2012-06-13 3 views
1

나는 스크립트를 작성하기 위해 파이썬 기계화 모듈을 사용하려고한다. 내가 실행할 때 다음 오류가 발생합니다. 실제로이 set_handle_gzip은 무엇입니까?기계화 태그 br.set_handle_gzip은 무엇을합니까?

[email protected]:~/pyth$ python rock.py         │                  
rock.py:15: UserWarning: gzip transfer encoding is experimental!  │                  
    br.set_handle_gzip(True)            │                  
Traceback (most recent call last):          │                  
    File "rock.py", line 60, in <module>         │                  
    br.follow_link(text='Sign out')         │                  
    File "/usr/lib/python2.7/dist-packages/mechanize/_mechanize.py", line│                  
569, in follow_link             │                  
    return self.open(self.click_link(link, **kwds))     │                  
    File "/usr/lib/python2.7/dist-packages/mechanize/_mechanize.py", line│                  
553, in click_link             │                  
    link = self.find_link(**kwds)          │                  
    File "/usr/lib/python2.7/dist-packages/mechanize/_mechanize.py", line│                  
620, in find_link       
    raise LinkNotFoundError()           │                  
mechanize._mechanize.LinkNotFoundError 

이 오류를 어떻게 극복 할 수 있습니까?

+0

파이썬 3.x에서 mechanize를 실제로 실행 했습니까? 그렇다면 어떻게? 내 원래의 질문 : http://stackoverflow.com/questions/13209778/whats-the-easiest-way-to-get-mechanize-for-python-3-on-debian – d33tah

답변

1

gzip으로 전송 인코딩 경고 때문에 다음 행의 생성 :

br.set_handle_gzip(True) 

는 경고 메시지를 제거 FalseTrue를 변경.

오류 메시지는 스크립트가 작업중인 페이지에서 '로그 아웃'이라는 링크를 찾을 수 없기 때문입니다.

br.follow_link(text='Sign out') 

이 줄의 텍스트 값을 페이지에서 사용 된 것과 같은 값으로 변경하십시오. 그것은 당신의 문제를 해결할 것입니다.

+2

하지만 set_handle_gzip 실제로 무엇을합니까? True에서 False로 변경하면 부정적 영향이있을 수 있습니까? – abw333

+0

은 gzip으로 압축 된 콘텐츠 (즉, 대역폭을 절약하지만 압축을 풀기 위해 추가 CPU 전원이 필요할 수 있음)의 콘텐츠를 수신 할 수 있음을 서버에 알립니다. – phoxley