downloaded_file.html
<table>
    <tr>
        <td>Nu1</td>
        <td>546</td>
    </tr>
    <tr>
        <td>Number one</td>
        <td>342</td>
    </tr>
    <tr>
        <td>Nu3</td>
        <td>456</td>
    </tr>
</table>
file_template.html
<table>
    <tr>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
    </tr>
</table>
Пишем, пишем код.
with open("file_template.html") as file_template:
    template_list = file_template.readlines()
with open("file_downloaded.html") as file_downloaded:
    downloaded_list = file_downloaded.readlines()
list_counter = 0
result_string=''
counter_i=0
while list_counter != len(downloaded_list):
    if downloaded_list[list_counter] != template_list[list_counter]:
        for i in range(len(template_list[list_counter])):
            if downloaded_list[list_counter][i] != template_list[list_counter][i]:
                counter_i = i
                #while  # пока символ с позиции template_list не сравняется с символом из downloaded_list
                result_string += downloaded_list[list_counter][counter_i]
        result_string += ","
    else:
        pass
    list_counter += 1
print(result_string)
И тут, как водится, что-то пошло не так:
Nu1</t,546</t,Number,342</t,Nu3</t,456</t,
Nu1,546,Number one,342,Nu3,456




