Форум сайта python.su
0
Нужно для реализации пинга к яндесу для сайта
Пример GET-запроса на индексацию:
GET /ping.xml?key=b11f3e1d35a1a01cb009a19dcf8f259b4bcaaf33 /
&login=some_login&search_id=43210123 /
&urls=example.com/about%0Aexample.com/contacts HTTP/1.1
Host: site.yandex.ru
Пример POST-запроса на индексацию:Какой легче реализовать с помощью urllib? Не понимаю собственно как реализовать. Никогда не приходилось.
POST /ping.xml?key=b11f3e1d35a1a01cb009a19dcf8f259b4bcaaf33&login=some_login&search_id=43210123 HTTP/1.1
Content-type: application/x-www-form-urlencoded
Host: site.yandex.ru
Content-Length: 45 #размер urlencoded данных ниже
urls=example.com/about%0Aexample.com/contacts
params = { 'key': 'b11f3e1d35a1a01cb009a19dcf8f259b4bcaaf33', 'login': 'some_login', 'urls': 'site.ru', 'search_id":'43210123' }
import urllib import urllib2 params = { 'key': 'b11f3e1d35a1a01cb009a19dcf8f259b4bcaaf33', 'login': 'some_login', 'urls': 'site.ru', 'search_id":'43210123' } url = 'site.yandex.ru' req = urllib2.Request(url + urllib.urlencode(params), headers={ 'User-Agent': 'Mozilla/5.0', 'Accept-Charset': 'utf-8' }) page = urllib2.urlopen(req).read()
Отредактировано hostdjango (Авг. 29, 2014 20:16:41)
Офлайн
33
hostdjango
Как проверить что яндекс принял запрос?
Отредактировано Budulianin (Авг. 29, 2014 21:43:25)
Офлайн
0
Вообще-то в спецификацию HTTP заложено, что сервер должен дать ответ.Знаю, просто не думал что дополнительные методы для проверки статуса ответа есть, думал что только гипертекстовая строка возвращается.
Понимаешь?
Тебе будет легче с requestsСлабая библиотека, скудная документация, +для моей маленькой задачи не хочется тащить стороннюю библиотеку
Офлайн
33
hostdjangoЗнал бы, тогда не спрашивал.
Знаю
hostdjangoНорм всё с документацией.
скудная документация
hostdjangoТебе всего два запроса отправить. Но так как ты не можешь осилить urllib2,
Слабая библиотека
hostdjangoНу тебе Яндекс предлагает API
GET /ping.xml? или это не надо использовать?
Отредактировано Budulianin (Авг. 29, 2014 21:57:08)
Офлайн
0
Либо POST слать либо GET, тебе уже решать.Это я понимал, я в первом сообщении спрашивал какой метод легче использовать (решил что get), я не знаю, нужно ли использовать /ping.xml? где-то в параметре.
Отредактировано hostdjango (Авг. 29, 2014 22:04:55)
Офлайн
33
hostdjangoВообще без разницы.
спрашивал какой метод легче использовать
Офлайн
0
Budulianin, ну вот мне вернуло 200, потом я решил посмотреть гипертекст, а там просто
http://urlsЧто-то мне это не нравится, разве нельзя было вывести что-то типа “success, you url example.com pinged”?
Как проверить что яндекс принял запрос?
Офлайн
0
Сам яндекс ничего не пишет… http://help.yandex.ru/site/optimizing.xml#http
Офлайн
33
hostdjangoКакой гипер текст? Может ответ?
потом я решил посмотреть гипертекст
Офлайн
0
Какой гипер текст? Может ответ?Ну в ответе же содержится гипертекст страницы. Т.е. page = urlopen(…).read() возвращает гипертекст в строке.
Если 200 отдаёт, то скорее всего Яндекс всё понял. Уточни у техподдержки, они без проблем ответят, что должно прийти в ответ.Ответ платонов нужно минимум неделю ждать, а мне нужно побыстрее сделать(((
Офлайн