Надо внутри python преобразовать к utf-8.
Как я понимаю это касается new['title'] и new['content'].
Надо в вашем цикле добавить к ним decode.
То есть:
for new in news:
a_pen.writerow((new['title'].decode("utf-8"), new['href'], new['date'], new['img'], new['content'].decode('utf-8')))
UPDATE
совместными усилиями пришли к выводу, что я некорректно понял вопрос изначально.
Ошибка не в самом python, а в открытии файла csv в excel.
Для открытия csv нужно в excel его импортировать и в мастере указать кодировку utf-8.
Но это необходимо проделывать при каждом импорте csv.
Поэтому для получения данных для excel с нормальной кодировкой лучше писать данные не в csv, а файл полноценный xlsx при помощи модуля openxl. Он позволяет создать полноценную книгу excel и записать данные прямо туда. Сохранив файл данным модулем, кодировка в excel должна открываться сразу нормально.