Ich versuche zu prüfen, ob ein bestimmtes Wort auf einer Seite für viele Websites vorhanden ist. Das Skript läuft gut für etwa 15 Seiten und dann stoppt es.
UnicodeDecodeError: 'utf8' Codec kann Byte 0x96 an Position 15344 nicht dekodieren: ungültiges Startbyte
Ich habe eine Suche auf Stackoverflow durchgeführt und viele Probleme dazu gefunden, aber ich kann nicht verstehen, was in meinem Fall schief gelaufen ist.
Ich möchte entweder zu lösen oder wenn es ein Fehler ist, überspringen Sie diese Seite. Bitte geben Sie mir einen Rat, wie ich das machen kann, da ich neu bin und ich einen Tag gebraucht habe, um den folgenden Code zu schreiben. Übrigens war die Seite, auf der das Skript anhielt http://www.homestead.com
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"
Gemäß Marks Kommentaren habe ich den Code geändert, um beautifulsoup zu implementieren
htmlfile = urllib.urlopen("http://www.homestead.com")
page = BeautifulSoup((''.join(htmlfile)))
print page.prettify()
Jetzt erhalte ich diesen Fehler
page = BeautifulSoup((''.join(htmlfile)))
TypeError: 'module' object is not callable
Ich versuche das Schnellstart-Beispiel von http://www.crummy.com/software/BeautifulSoup/documentation.html#Quick%20Start . Wenn ich ihn kopiere und einfüge, funktioniert der Code gut.
ENDLICH hat es funktioniert. Ich danke euch allen für eure Hilfe. Hier ist der endgültige Code.
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"