Механизировать ответ не возвращает содержимого - PullRequest
1 голос
/ 07 февраля 2012

Я использую Mechanize в Python для выполнения некоторых операций по поиску в сети. Большая часть веб-сайта работает, но одна конкретная страница не возвращает никакого Контента или Ответа.

Мои настройки

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)

и код для выполнения:

response = self._browser.open(url)

Это вывод отладки:

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

Я пробовал с и без перенаправления безрезультатно. Есть идеи?

Я мог бы добавить, что страница отлично работает в браузере.

1 Ответ

1 голос
/ 08 февраля 2012

Процедура, чтобы выяснить, в чем проблема, обычно такова:

  1. Захват трафика вашего веб-браузера при успешном открытии URL
  2. Захват трафика Python при попытке открыть URL

Для первого шага доступно много инструментов. Например, в Firefox HttpFox и Live HTTP Headers могут быть весьма полезны.

Для второго шага должно быть достаточно программной регистрации отправляемых / получаемых заголовков.

Для обоих шагов вы также можете захватывать трафик на вашей сетевой карте с помощью чего-то вроде wireshark .

...