2012-02-07 3 views
1

저는 파이썬에서 Mechanize를 사용하여 웹 스크래핑을 수행하고 있습니다. 대부분의 웹 사이트는 작동하지만 특정 페이지는 내용이나 응답을 반환하지 않습니다.Mechanize 응답이 내용을 반환하지 않습니다.

내 설정은

self._browser = mechanize.Browser() 
self._browser.set_handle_refresh(True) 
self._browser.set_debug_responses(True) 
self._browser.set_debug_redirects(True) 
self._browser.set_debug_http(True) 

하고 실행하는 코드는 다음과 같습니다

add_cookie_header 
Checking xyz.com for cookies to return 
- checking cookie path=/ 
- checking cookie <Cookie ASP.NET_SessionId=j3pg0wnavh3yjseyj1v3mr45 for xyz.com/> 
    it's a match 
send: 'GET /page.aspx?leagueID=39 HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: xyz.com\r\nCookie: ASP.NET_SessionId=aapg9wnavh3yqyrtg1v3ar45\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2\r\n\r\n' 
reply: 'HTTP/1.1 200 OK\r\n' 
header: Date: Tue, 07 Feb 2012 19:04:37 GMT 
header: Pragma: no-cache 
header: Expires: -1 
header: Connection: close 
header: Cache-Control: no-cache 
header: Content-Length: 0 
extract_cookies: Date: Tue, 07 Feb 2012 19:04:37 GMT 
Pragma: no-cache 
Expires: -1 
Connection: close 
Cache-Control: no-cache 
Content-Length: 0 

내가로 리디렉션으로하고하지 않고 시도했다 :이 디버그 출력

response = self._browser.open(url) 

아무 소용이. 어떤 아이디어?

페이지를 브라우저에 올바르게 추가 할 수 있습니다.

답변

1

문제는 일반적으로 일을 확인하는 절차는이 하나

  1. 의 URL
을 열려고 할 때 성공적으로 URL을
  • 캡처 파이썬 트래픽을 열 때 웹 브라우저 트래픽을 캡처

    첫 번째 단계에는 사용할 수있는 많은 도구가 있습니다. 예를 들어 firefox의 경우 HttpFoxLive HTTP Headers이 유용 할 수 있습니다.

    두 번째 단계에서는 프로그래밍 방식으로 보내고받는 헤더를 기록하는 것으로 충분합니다.

    두 단계의 경우 네트워크 카드의 트래픽을 wireshark과 같이 캡처 할 수 있습니다.

  • +0

    피들러 (fiddler) 나 찰스 (charles)와 같은 디버깅 프록시는 wireshark보다 훨씬 잘 작동합니다. – pguardiario

    +0

    @pguardiario 귀하의 의견을 보내 주셔서 감사합니다. 필자는 이들 중 어느 하나도 사용하지 않았지만 오픈 소스가 아닐지라도 유용하다고 생각됩니다. – jcollado

    +0

    크롬에서 개발자 세션을 사용하도록 설정했는데 문제 해결에 도움이되는 것으로 보입니다. 감사 –

    관련 문제