2011-11-27 3 views
0

내 시스템에 프록시가 없습니다.Python의 Urllib에서 예기치 않은 동작이 발생했습니다.

params = urllib.urlencode({'search':"August Rush"}) 
f = urllib.urlopen("http://www.thepiratebay.org/search/query", params) 

이것은 무한 루프 (또는 단지 멈춤)로 이어집니다. 분명히 이것을 제거하고 FancyUrlOpener를 사용하고 매개 변수를 전달하는 대신 직접 쿼리를 만들 수 있습니다. 하지만 지금하고있는 일을하는 것이 더 좋고 깨끗한 방법이라고 생각합니다.

편집 : 이것은 내 우분투 워크 스테이션이 다른 프록시로 구성된 네트워킹 문제입니다. 특정 변경 작업을 수행하면 효과가있었습니다. 고맙습니다!

답변

1

게시 된 코드는 Windows 용 Python 2.7.2와 함께 잘 작동합니다.

Fiddler2과 같은 http 디버깅 도구를 사용하여 프로그램과 사이트 간 실제 대화를 보았습니까?

당신은 로컬 호스트의 포트 8888에 Fiddler2를 실행하면 요청 및 응답 확인이 작업을 수행 할 수 있습니다

import urllib 
proxies = {"http": "http://localhost:8888"} 
params = urllib.urlencode({'search':"August Rush"}) 
f = urllib.urlopen("http://www.thepiratebay.org/search/query", params, proxies) 
print len(f.read()) 
+0

저를 Fiddler에게 소개해 주셔서 감사합니다. – Hick

1

이 나를 위해 작동합니다

import urllib 

params = urllib.urlencode({'q': "August Rush", 'page': '0', 'orderby': '99'}) 
f = urllib.urlopen("http://www.thepiratebay.org/s/", params) 

with open('text.html', 'w') as ff: 
    ff.write('\n'.join(f.readlines())) 

내가 구글 크롬과 http://www.thepiratebay.org을 열었다을 네트워크 관리자가 활성화 된 상태. 나는 "August Rush"를 검색 필드에 넣고 'Search'를 누릅니다. 그런 다음 보낸 헤더를 분석하고 위의 코드를 수행했습니다.

+0

연결이 여전히 시간 초과되었습니다. – Hick

+0

두 사람이 작동한다면 네트워크 문제가있는 것 같습니다 ... – warvariuc

관련 문제