¿Cómo escribo todas estas filas en un archivo CSV para un rango determinado?

El propósito del código a continuación es el webscrape, el diccionario de inglés de Oxford para palabras que fueron "inventadas" en cada año dentro de un rango de años. Todo esto funciona según lo previsto.

import csv
import os
import re
import requests
import urllib2

year_start= 1550
year_end = 1552
subject_search = ['Law']

for year in range(year_start, year_end +1):
    path = '/Applications/Python 3.5/Economic'
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
    urllib2.install_opener(opener)

    user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
    header = {'User-Agent':user_agent}

    resultPath = os.path.join(path, 'OED_table.csv')
    htmlPath = os.path.join(path, 'OED.html')
    request = urllib2.Request('http://www.oed.com/search?browseType=sortAlpha&case-insensitive=true&dateFilter='+ str(year)+ '&nearDistance=1&ordered=false&page=1&pageSize=100&scope=ENTRY&sort=entry&subjectClass='+ str(subject_search)+ '&type=dictionarysearch', None, header)
    page = opener.open(request)

    with open(resultPath, 'wb') as outputw, open(htmlPath, 'w') as outputh:
        urlpage = page.read()
        outputh.write(urlpage)

        new_words = re.findall(r'<span class=\"hwSect\"><span class=\"hw\">(.*?)</span>', urlpage)
        print new_words
        csv_writer = csv.writer(outputw)
        if csv_writer.writerow([year] + new_words):
            csv_writer.writerow([year, word])

Sin embargo, cuando realmente ejecuto el código, la única parte que se escribe en el archivo csv es el último año al que llamo. Entonces, mi archivo csv termina pareciendo una fila como esta:

1552, palabra1, palabra2, palabra3, etc.

Básicamente quiero tener una fila separada para cada año en el rango de años. ¿Cómo hago esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta