Александр, ошибка с Nonetype означает, что у каких-то из найденных тэгов
<a>
отсутствует href, в результате в список записывается None, т.е.
alllist = ['url1', 'url2', ..., None, ... ]
Само по себе это не было бы проблемой в списке, но writerow предполагает, что каждый элемент - это список данных (список колонок для csv), а передаете просто строку, поэтому он пытается ее итерировать (т.е. строки он будет записывать побуквенно через разделитель). А None итерировать он уже не может, поэтому и ругается.
Поправить можно так:
for line in allurl:
writers.writerow([line])
Можно сразу делать проверку, что href есть, чтобы не пихал пустые значения в список.