Да, генераторы можно использовать один раз.Каждый раз, когда мы выполняем итерацию генератора, мы просим его дать нам другое значение, и, если больше нет значений для выдачи, генерируется исключение StopIteration, которое остановит итерацию.Для генератора нет способа узнать, что мы хотим повторить его снова без клонирования.
Поскольку записи могут удобно помещаться в памяти, я бы использовал вместо этого список:
top_stories = list(top_stories)
Таким образом, вы можете повторять top_stories несколько раз.
Есть функция itertools.tee для копирования итератора, которая также может вам помочь, но иногда она медленнее, чем просто использование списка.Справка: http://docs.python.org/library/itertools.html?highlight=itertools.tee#itertools.tee