Как открыть URL с помощью Python без использования браузера? - PullRequest
0 голосов
/ 23 декабря 2011

Я хочу открыть URL с кодом Python, но я не хочу использовать модуль "webbrowser". Я уже пробовал, и это сработало (он открыл URL в моем браузере по умолчанию, что я не хочу). Тогда я попытался использовать urllib (urlopen) и механизировать. Они оба отлично работали с моей программой, но ни один из них фактически не отправил мой запрос на сайт!

Вот часть моего кода:

finalURL="http://www.locationary.com/access/proxy.jsp?ACTION_TOKEN=proxy_jsp$JspView$SaveAction&inPlaceID=" + str(newPID) + "&xxx_c_1_f_987=" + str(ZA[z])

print finalURL

print ""

br.open(finalURL)

page = urllib2.urlopen(finalURL).read()

Когда я захожу на сайт locationary.com, он не показывает, что были внесены какие-либо изменения! Когда я использовал «веб-браузер», он показывал изменения на веб-сайте после того, как я отправил свой URL. Как я могу сделать то же самое, что веб-браузер, не открывая браузер?

Я думаю, что веб-сайт хочет "GET"

Ответы [ 2 ]

1 голос
/ 23 декабря 2011

Я не уверен, с какой ОС вы работаете, но если вы используете что-то вроде httpscoop (mac), fiddler (pc) или wireshark, вы сможете наблюдать за трафиком и видетьчто происходит.Возможно, веб-сайт выполняет переадресацию (за которой следит ваш браузер) или что-то в этом роде.

Запустите анализатор HTTP, выполните запрос с помощью веб-браузера и просмотрите трафик.Как только вы это сделаете, попробуйте это с помощью скрипта python и посмотрите, выполняется ли запрос, и в чем разница в HTTP-трафике.Это должно помочь определить, где находится разъединение.

0 голосов
/ 23 декабря 2011

HTTP GET не требует никакого специального кода или действия на стороне клиента: это просто базовый URL (http://server/) + путь + необязательный запрос.

Если URL верный, то код выше должен работать. Некоторые указания, что вы можете попробовать дальше:

  1. Правильно ли указан URL? Используйте Firebug или аналогичный инструмент для отслеживания сетевого трафика, который дает вам полный URL-адрес плюс любые поля заголовка из HTTP-запроса.

  2. Возможно, сайт требует, чтобы вы вошли сначала. Если это так, убедитесь, что вы правильно настроили куки.

  3. Некоторые сайты требуют правильного поля "реферер" (чтобы защитить себя от глубоких ссылок). Добавьте заголовок реферера, который ваш браузер использовал для запроса.

  4. Файл журнала сервера является отличным источником информации для устранения проблем, возникающих при таких проблемах.

...