
Stuber
17.07.2018
20:12:25

-_-
17.07.2018
20:18:55

Stuber
17.07.2018
20:30:02
что то ерунда какая то

Google

-_-
17.07.2018
20:30:51
Ну дык может в апи дело

Stuber
17.07.2018
20:31:40
Почему я получаю меньше билетов, чем в вашем поиске?
Когда вы используете API поиска авиабилетов в реальном времени, вам приходит ответ от тех же агентств и авиакомпаний, что и у нас на сайте. Самый распространенный случай, когда ответ меньше — это недостаточная пауза, между отправкой запроса и получением результата. Дело в том, что для получения ответа ото всех агентств требуется порядка 30 секунд. Если запросить результат раньше, то он может содержать не все данные.

Driver
17.07.2018
20:32:52
вытаскивать кусками не вариант?

Stuber
17.07.2018
20:34:22

Egor
17.07.2018
20:34:37
А результат на сам запрос должен прийти или результат отдельно дёргается?

Driver
17.07.2018
20:34:45
ну тогда ой.

Stuber
17.07.2018
20:36:15
А результат на сам запрос должен прийти или результат отдельно дёргается?
Отправляешь запрос и сразу результат должен, у них очень плохое апи
1) сначала ты берешь данные, отправляешь запрос на сайт, чтобы пришла сигнатура
2) берешь сигнатуру, опять вставляешь данные, отправляешь запрос чтоб получить search_id
3) берешь search_id и делаешь get запрос на сайт и тебе приходит джон

Egor
17.07.2018
20:37:14
Между вторым и третьим шагом есть 30 секунд?
Тайм-аут наверно нужен здесь а не в requests

Stuber
17.07.2018
20:38:22
во втором тоже джон там просто достаешь search_id, а остальоне хлам
и этот search вставляешь в ссылку

Google

Egor
17.07.2018
20:40:06
Так там же написано, должен быть тайм-аут

Stuber
17.07.2018
20:40:39
это в запросе последнем

Egor
17.07.2018
20:40:39
Ты получается генеришь поиск

Stuber
17.07.2018
20:40:50
ну мб я не прав

Egor
17.07.2018
20:40:54
Потом ждёшь когда они найдут
А потом получаешь готовый результат
Между этапами скорей всего должна быть пауза

Stuber
17.07.2018
20:41:45
между отправкой запроса и получением результата
ну это я понимаю как ты отправляешь конечный гет запрос и ждешь время, чтобы все собрало

Egor
17.07.2018
20:41:58
Нет
Ждать нужно перед последним гэтом
Если бы так всё просто было бы, тогда было бы 1 шаг или 2

Stuber
17.07.2018
20:43:44
окей, щас попробую слипануть после второго запроса перед гет

Egor
17.07.2018
20:44:12
Ну это как альтернативная версия твоей, если уж твоя версия не работает, то может там всё по моей версии сработает.
Там наверное третий шаг можно несколько раз подряд повторять и тогда будет видно как количество результатов увеличивается.

Stuber
17.07.2018
20:52:08

Egor
17.07.2018
20:52:22
Ну вот видишь
Можешь не благодарить биткоинами, я предпочитаю $10 и $20 купюры бывшие в употреблении.

Stuber
17.07.2018
20:54:10
10 рублей бумажные ?
Спасибо большое)

Google

Egor
17.07.2018
20:55:22
Это у aviasales такое API?

Stuber
17.07.2018
20:55:40
204 страницы текста
и всего 6
бля что это)
не могут нормальный что ли сделать

Egor
17.07.2018
20:57:00
Нужно мне туда устроиться, я вам быстро покажу что такое плохое API

Stuber
17.07.2018
20:57:01
а мб так и должно, напишу в поддержку, пусть пояснят

Egor
17.07.2018
20:57:24
Наверно это 6 этапов
Типо они от компаний получали предложения порциями

Nikolay
17.07.2018
20:58:05
что это?

Stuber
17.07.2018
20:58:07
а почему иногда 40 приходит
что это?
ну это если ссылку на браузер нажать

Nikolay
17.07.2018
20:58:50
я думал они файл отдают при вызове

Egor
17.07.2018
20:58:52
6 это когда 3 этап сразу после 2?

Nikolay
17.07.2018
20:58:54
??

Stuber
17.07.2018
20:59:19
ну зато теперь 204 страницы

Nikolay
17.07.2018
21:00:05
ну дк; агрегаторы сами этим зарабатывают и не хотят, чтобы ты их хлеб отбирал; тем более у них всё гладко с прямыми компаниями-перевозчиками

Google

Nikolay
17.07.2018
21:00:19
платные api, скидосы и все такое

Stuber
17.07.2018
21:00:29
они живут на комиссиях, я наоборот им помогаю

Nikolay
17.07.2018
21:00:52
хорошо бы метапоисковиком.
я даже носки порой не найду

Stuber
17.07.2018
21:02:08
ахахах как оно работает то емае
207 страниц получил

Nikolay
17.07.2018
21:04:23
не связывайся с агрегаторами в этом плане

Admin
ERROR: S client not available

Nikolay
17.07.2018
21:05:22
они на 10 шагов впереди, пока ты пытаешься запросить у них что-то
возможно эмуляция юзера поможет
и то там частые реквесты не поделаешь

Stuber
17.07.2018
21:07:51
кстати, вопрос такой вот у меня массив джона
как мне пройтись по всем ценникам ['filters_boundary']['price']['min'], у них там в листе все [0]['filters_boundary']['price']['min'] и тд
так я хз сколько у них там этого

Jl
17.07.2018
21:08:49
как обновить python3 ?
До 3.6 или 3.7
Делаю инсталл либо апгрейд и версия не меняется
С коробки 3.5
Кеды неон

Stuber
17.07.2018
21:09:01
мб как то через while, пока типо не None, заменяй [0] на +1

Ivan
17.07.2018
21:09:54
class myIter:
def init(self, name, rng_num):
self.name = name
self._range = iter(range(rng_num))
# def next(self):
# value = next(self._range)
# print(self.name, value)
# return value
def nextF(self):
value = next(self._range)
print(self.name, value)
return value
def iter(self):
itr = myIter('iter', 10)
itr.next = self.nextF
return itr
# def iter(self):
# return myIter('new one', 10)
def repr(self):
return f'{self.class}, {self.name}'
for i in myIter('for', 5):
print(i)
Собственно вопрос: почему не работает? По сути возвращаю объект с функцией next, но выдаёт ошибку
for i in myIter('for', 5):
TypeError: iter() returned non-iterator of type 'myIter'
Типа если не вернул из нормально созданного (в теле класса) метода, то уже не итератор?
https://pastiebin.com/5b4e5b599a64b

Nikolay
17.07.2018
21:13:27
че-т какая-то рекурсия
чем yield обычный не устраивает

Google

Ivan
17.07.2018
21:15:27
упражняюсь с протоколом итератора. По идее, класс должен реализовывать метод iter, который должен вернуть реализующий функцию next объект (какой угодно)
и, допустим, этот объект сам по себе не имеет функции next, что если её привязать простым присваиванием
но что-то не так

Nikolay
17.07.2018
21:16:39
а че какой-то новый конструктор
init а не init
это што питон 7?

Ivan
17.07.2018
21:17:12
это телеграм обрабатывает дандреды
я там ссылку на pastebin скинул

Andrey
17.07.2018
21:18:03
itr.__next__ = self.nextF выглядит подозрительно, точно нет проблем с тем, что справа метод привязан к исходному self?

Nikolay
17.07.2018
21:18:34
3.4 ошибка как у тебя

Ivan
17.07.2018
21:19:47
как я понимаю, правый селф просто для получения метода, после привязки он будет выполняться с селфом уже нового объекта. Внутри самого метода iter у меня что-то не вышло нормально функцию с приёмом селфа, вернее он туда не передаётся (пока просто забил на это)
def iter(self):
def innerNext(self):
value = next(self._range)
print(self.name, value)
return value
itr = myIter('iter', 10)
itr.next = innerNext
return itr
хотя так тоже работает, то я не так понял про перекрытие переменных
вернее работает присоединение функции, а не в целом)

Andrey
17.07.2018
21:23:08

Ivan
17.07.2018
21:24:02
а я и не заметил

Nikolay
17.07.2018
21:26:11
Моя догадка, что это итератор
всмысле если мы наружу отдаем что-то, то оно должно быть вместе
как если бы отдали лист какой-нибудь
итератор - для экономии памяти, он по одному берет из sequence
как только он снаружи оказывается, то он не знает откуда брать