Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 2, 2007 01:32:42

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

вопрос по отправке POST

Здравствуйте, вот пробую написать скрипт,отправки на dpast.com через посылку POST запроса.
вот код:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib,httplib

data = {“content”:“import test; print test”,“language”:“Python”,“title”:“”,“poster”:“”,“hold”:“”}
params = urllib.urlencode(data)
headers = {“http-equiv”: “Content-Type”, “ content”: “text/html”,“charset”:“utf8”}
connection = httplib.HTTPConnection(“www.dpaste.com:80”)
connection.request(“POST”, “/”, params)
otvet = connection.getresponse()
print otvet.status, otvet.reason
dataa = otvet.read()
print dataa
connection.close()


В итоег работы скрипта, получаю,вот такое сообщение:
$ python dpaste.py
302 Found
<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://dpaste.com/">here</a>.</p>
</body></html>

Почитав в интернете, ошибка 302-это переход. Собственно.как организовать этот переход в питоне? или я заблуждаюсь



Отредактировано (Сен. 2, 2007 01:37:34)

Офлайн

#2 Сен. 2, 2007 22:09:26

jan2ary
От:
Зарегистрирован: 2006-11-21
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по отправке POST

Ловить ошибку 302, при этом otvet.msg укажет, куда переходить.
Пример: http://www.nabble.com/HTML-page-status-t2259778.html



Офлайн

#3 Сен. 6, 2007 22:10:17

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

вопрос по отправке POST

спасибо



Офлайн

#4 Сен. 10, 2007 18:34:45

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

вопрос по отправке POST

Исходя из примера выше, дописал свой скрипт, но, он почему то не работает, т.е. он получает ссылку переадресации, но не ту,которую надо. Исследуя, пришел к выводу,что он не отправляет content на сайт, и его перекидывает обратно. вот код, POST посылаю на dpaste.com, подскажите ,что не так? почему не постится то,что посылаю на дпасте

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib,httplib

data = {“content”:'import test; print test',“language”:“Python”,“title”:“”,“poster”:“”,“hold”:“”}
params = urllib.urlencode(data)
print params
headers = {“http-equiv”: “Content-Type”, “ content”: “text/html”,“charset”:“utf8”}
connection = httplib.HTTPConnection(“www.dpaste.com:80”)
connection.request(“POST”, “/”, params)
otvet = connection.getresponse()
result = otvet.msg
print result



Офлайн

#5 Сен. 11, 2007 12:20:38

jan2ary
От:
Зарегистрирован: 2006-11-21
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по отправке POST

Так он перенаправляет на http://dpaste.com/, так вроде и должно быть…



Офлайн

#6 Сен. 11, 2007 23:34:09

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

вопрос по отправке POST

jan2ary
когда ты отправляешь код ( через его форму) он перенаправляет на страницу вида: www.dpaste.com/номер_добавления… а не просто на dpaste.com. Т.е. получается у меня скрипт ен отправляет данные из content :( или их сервер ен принмаиет



Офлайн

#7 Сен. 12, 2007 22:41:31

jan2ary
От:
Зарегистрирован: 2006-11-21
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по отправке POST

Вот такой код выводит содержание полученной страницы

import urllib

dataAsDictonary={“content”:'import test; print test',“language”:“Python”,“title”:“”,“poster”:“”,“hold”:“”}

url = 'http://dpaste.com/'
f = urllib.urlopen(url, urllib.urlencode(dataAsDictonary))

print f.read()


Как получить урл этой страницы - расскажешь, мне самому интересно :)



Офлайн

#8 Сен. 13, 2007 19:04:15

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

вопрос по отправке POST

в случае с dpaste я нашел как))
у них там номер есть в коде страницы,вот его надо опарсить. А вообще, поищу функцию в урллиб…



Офлайн

#9 Сен. 13, 2007 19:05:47

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

вопрос по отправке POST

ха,нашел

f.geturl()

и все окейно ;)



Офлайн

#10 Сен. 13, 2007 23:53:43

jan2ary
От:
Зарегистрирован: 2006-11-21
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по отправке POST

От і добре :-)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version