Во-первых, упростите цикл и исключите несколько переменных, которые в данном случае представляют собой шаблонную ошибку:
for pagenum in xrange(1, 4): # The 4 is annoying, write it as 3+1 if you like.
url = "http://www.ted.com/talks?page=%d" % pagenum
# do stuff with url
Но давайте открывать файл вне цикла, а не открывать его каждую итерацию.Вот почему вы видели только 10 результатов: говорите 11-20, а не первые десять, как вы думали.(Было бы 21-30, если бы вы не зациклились на page_count < total_pages
, который обрабатывал только первые две страницы.)
И соберите все ссылки сразу, а затем напишите результат.Я убрал стилевое оформление HTML, что также облегчает выполнение кода;вместо этого используйте CSS, возможно встроенный элемент