codec utf8 não pode decodificar o byte 0x96 em pyth

Estou tentando verificar se uma determinada palavra está em uma página para muitos sites. O script funciona bem para digamos 15 sites e depois par

UnicodeDecodeError: o codec 'utf8' não pode decodificar o byte 0x96 na posição 15344: byte inicial inválido

Fiz uma pesquisa no stackoverflow e encontrei muitos problemas, mas não consigo entender o que deu errado no meu caso.

Gostaria de resolvê-lo ou, se houver um erro, pule esse site. Pls conselhos como eu posso fazer isso como eu sou novo e o código abaixo me levou um dia para escrever. A propósito, o site em que o script parou foihttp: //www.homestead.co

filetocheck = open("bloglistforcommenting","r")
resultfile = open("finalfile","w")

for countofsites in filetocheck.readlines():
        sitename = countofsites.strip()
        htmlfile = urllib.urlopen(sitename)
        page = htmlfile.read().decode('utf8')
        match = re.search("Enter your name", page)
        if match:
            print "match found  : " + sitename
            resultfile.write(sitename+"\n")

        else:
            print "sorry did not find the pattern " +sitename

print "Finished Operations"

Conforme os comentários de Mark, mudei o código para implementar beautifulsoup

htmlfile = urllib.urlopen("http://www.homestead.com")
page = BeautifulSoup((''.join(htmlfile)))
print page.prettify() 

agora estou recebendo esse erro

page = BeautifulSoup((''.join(htmlfile)))
TypeError: 'module' object is not callable

Estou tentando o exemplo de início rápido dehttp: //www.crummy.com/software/BeautifulSoup/documentation.html#Quick%20Star. Se eu copiar e colar, o código funcionará be

Eu finalmente consegui que isso funcione. Obrigado a todos por sua ajuda. Aqui está o código final.

import urllib
import re
from BeautifulSoup import BeautifulSoup

filetocheck = open("listfile","r")

resultfile = open("finalfile","w")
error ="for errors"

for countofsites in filetocheck.readlines():
        sitename = countofsites.strip()
        htmlfile = urllib.urlopen(sitename)
        page = BeautifulSoup((''.join(htmlfile)))  
        pagetwo =str(page) 
        match = re.search("Enter YourName", pagetwo)
        if match:
            print "match found  : " + sitename
            resultfile.write(sitename+"\n")

        else:
            print "sorry did not find the pattern " +sitename

print "Finished Operations"

questionAnswers(3)

yourAnswerToTheQuestion