2011-12-15 4 views
6

저는 Python의 Mechanize 모듈을 사용하고 있습니다.Python Mechanize는 이러한 사이트를 열지 않습니다.

  1. en.wikipedia.org/wiki/Dog (새 사용자가 2 개 이상의 링크 TT를 게시 할 수 없습니다)
  2. https://www.google.com/search?num=100&hl=en&site=&q=dog&oq=dog&aq=f&aqi=g10&aql=1&gs_sm=e&gs_upl=618l914l0l1027l3l2l0l0l0l0l173l173l0.1l1l0
  3. : 내가 직접 기계화 열 수 없습니다 3 개 개의 다른 사이트에서 왔어요 다음 코드를 추가
  4. http://www.cpsc.gov/cpscpub/prerel/prhtml03/03059.html

    import mechanize 
    br = mechanize.Browser() 
    br.set_handle_robots(False) 
    

위키 피 디아 기사와 구글의 검색 결과를 열고 구문 분석을 기계화 할 수 있습니다 S :

br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

하지만, 내 해결은 CPSC.gov 웹 사이트에 대한 일치하지 않습니다 - 나는 기계화 브라우저로를 열 때, 내 파이썬 정지 - 지점으로 심지어 키보드를 인터럽트 할 수없는 경우 .

여기 무슨 일 이니?

답변

14

cpsc.gov 사이트의 경우 refresh 헤더가 mechanize HTTPRefreshProcessor에서 제대로 처리되지 않는 것처럼 보입니다. 그러나 다음과 같이 문제를 해결할 수 있습니다.

import mechanize 

url = 'http://www.cpsc.gov/cpscpub/prerel/prhtml03/03059.html' 
br = mechanize.Browser() 
br.set_handle_refresh(False) 
br.open(url) 
+0

당신은 보스입니다! 내 질문에 대한 답변을 어떻게 알았는지 물어볼 수 있습니까? –

+2

'urllib2.urlopen'과'mechanize.urlopen'을 사용하여 url을 열 수 있다는 것을 알았습니다. 그 후 각 오프너의 핸들러 ('urllib2._opener','mechanize._opener'와'mechanize.Browser()')를 비교하고 [HttpFox] (https://addons.mozilla.org)의 흔적을 살펴 보았습니다./ko-US/firefox/addon/httpfox /). 몇 번 시도한 후 새로 고침 프로세서를 제거하는 것이 올바른 해결책이라는 것을 알게되었습니다. – jcollado

+0

존중 다시 한번 감사드립니다 :) –

관련 문제