Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Python: Общие вопросы > жутко удивило: зачем питону нажатие клавиши? |
Автор: kulibinka 8.1.2007, 18:25 | ||
Разбираясь с десктопным яндексом (локальный поиск на компьютере - http://desktop.yandex.ru/), сделал себе на питоне прокладку между моими запросами и тем что выдает яндекс. Т.е., даю питону файл запросов, он их посылает моему локальному яндексу и собирает результаты выдачи мне в папочку. У меня управляющая конструкция вида:
И вот тут начинается фокус: обычно оно вообще в цикл не входит, а в самом плохом случае оно циклится, циклится, но рано или поздно успешно все считывает. НО: ЕСЛИ В ПЕРИОД ЦИКЛЕНИЯ КЛИКНУТЬ НА ЛЮБУЮ КЛАВИШУ, ОН СРАЗУ ЖЕ УСПЕШНО ЗАРАБОТАЕТ! Как по мне, то это чудо ![]() Кто-нибудь может его обьяснить? |
Автор: albertn 10.1.2007, 11:49 |
А циклится в каком месте? В смысле выводит * или количество неудачных попыток? |
Автор: kulibinka 10.1.2007, 11:55 |
нажатие клавИши звездЫ жизнь обрывает есть тайны в этом мире... (хоку, которая точно описывает ситуацию ![]() |
Автор: albertn 10.1.2007, 12:01 | ||
А что выведет, если написать в 13 строке:
|
Автор: kulibinka 10.1.2007, 12:23 | ||
Выведет
|
Автор: albertn 10.1.2007, 12:35 | ||
Она у тебя скорее всего по таймауту вылетает, или где-то глюк. Попробуй более стабильную функцию
|
Автор: kulibinka 10.1.2007, 12:47 | ||
Попробовал. И опять побежало "204 No Content" до нажатия клавиши... Добавлено @ 12:51 Почитал о 204.
Озадачила фраза "Этот ответ предназначен прежде всего для того, чтобы позволить вводить данные для действий" - он что, действительно ждет чтобы я что-то сделал? |
Автор: kulibinka 11.1.2007, 21:01 |
Ну так что - ни у кого никаких идей нет, нужно будет делать эмуляцию клика миши в окне на питоне ![]() |
Автор: albertn 12.1.2007, 10:26 | ||
На сколько я понял, этот яндекс частично аяксовый, поэтому от скорее всего ожидает, что с ним будет общаться именно JavaScript. Попробуй дополнительно отправить серверу заголовки:
|
Автор: kulibinka 12.1.2007, 13:32 | ||||
Попробовал.
И вообще, как оказалось - если вылезет No Content, то это навсегда (сам скрипт через while True никогда эту ситуацию не разрулит). Кстати, ему даже не нужно нажатие клавиши - достаточно мышкой поводить по окну питоновскому ![]() Добавлено @ 13:35
Ну если бы он на всех запросах так глючил, я бы понял. Но ведь не на всех - иногда ему просто что-то заходит, и тогда он сваливается в No Content. |
Автор: albertn 15.1.2007, 09:29 |
Скорее всего яндекс каким-то образом понимает, что ты уже когда-то делал данный запрос, и говорит, что ничего с прошлого раза не изменилось. По-этому и вызывает ошибку 204. Есть еще не возможные варианты решения:
|
Автор: pythonwin 15.1.2007, 12:28 |
можно ещё
|
Автор: albertn 15.1.2007, 12:31 |
Для начала нужно установить действительно ли это их баг, или это фитча яндекса. |
Автор: Sergey912 29.1.2007, 11:35 |
kulibinka, Может быть не в тему, но зачем с Яндексом соеденятся через локалхост? ![]() |
Автор: kulibinka 29.1.2007, 15:56 | ||
это поиск по компу от Яндекса - см. первый пост. |