Python beautifulsoup iterar sobre la mesa

Estoy tratando de raspar los datos de la tabla en un archivo CSV. Desafortunadamente, he llegado a un bloqueo de carretera y el siguiente código simplemente repite el TD desde la primera TR para todas las TR posteriores.

<code>import urllib.request
from bs4 import BeautifulSoup

f = open('out.txt','w')

url = "http://www.international.gc.ca/about-a_propos/atip-aiprp/reports-rapports/2012/02-atip_aiprp.aspx"
page = urllib.request.urlopen(url)

soup = BeautifulSoup(page)

soup.unicode

table1 = soup.find("table", border=1)
table2 = soup.find('tbody')
table3 = soup.find_all('tr')

for td in table3:
    rn = soup.find_all("td")[0].get_text()
    sr = soup.find_all("td")[1].get_text()
    d = soup.find_all("td")[2].get_text()
    n = soup.find_all("td")[3].get_text()

    print(rn + "," + sr + "," + d + ",", file=f)
</code>

Este es mi primer script en Python, por lo que cualquier ayuda sería apreciada. He revisado otras respuestas a las preguntas pero no puedo entender qué estoy haciendo mal aquí.

Respuestas a la pregunta(2)

Su respuesta a la pregunta