Форум сайта python.su
Здравствуйте, вот пробую написать скрипт,отправки на 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)
Офлайн
Ловить ошибку 302, при этом otvet.msg укажет, куда переходить.
Пример: http://www.nabble.com/HTML-page-status-t2259778.html
Офлайн
спасибо
Офлайн
Исходя из примера выше, дописал свой скрипт, но, он почему то не работает, т.е. он получает ссылку переадресации, но не ту,которую надо. Исследуя, пришел к выводу,что он не отправляет 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
Офлайн
Так он перенаправляет на http://dpaste.com/, так вроде и должно быть…
Офлайн
jan2ary
когда ты отправляешь код ( через его форму) он перенаправляет на страницу вида: www.dpaste.com/номер_добавления… а не просто на dpaste.com. Т.е. получается у меня скрипт ен отправляет данные из content :( или их сервер ен принмаиет
Офлайн
Вот такой код выводит содержание полученной страницы
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()
Как получить урл этой страницы - расскажешь, мне самому интересно :)
Офлайн
в случае с dpaste я нашел как))
у них там номер есть в коде страницы,вот его надо опарсить. А вообще, поищу функцию в урллиб…
Офлайн
ха,нашел
f.geturl()
и все окейно ;)
Офлайн
От і добре :-)
Офлайн