Birden çok web sitesindeki kaynak kodunu (html) okumaya çalışıyorum ve aşağıdaki kodu kullanın. Site utf-8'de kodlandığı sürece gayet iyi çalışır ancak ISO-8859-1'de kodlanmış bir site bazı problemlere neden olur. Aşağıdaki kodda da görebileceğiniz gibi, blok dışında ikinci sayfaya gitmesi beklenir ve program çalıştırıldığında blok içindeki hata ayıklama baskısı yazdırılır. Ancak, html_doc değişkeni herhangi bir değer almıyor. f.read() ile yanlış bir şey gibi görünmüyor ... decode ... ifadesi, try-except bloğu dışında aynı ifadeyle birlikte yorumlanmış hat mükemmel bir şekilde çalışıyor. Bu neden oluyor? Şu ana kadar problemin nasıl çözüleceğine dair önerileri gerçekten takdir ediyorum.Urllib içeride okuma dışında çalışmaz
def getSource(self, target_url):
print(target_url)
html_doc = None
try:
f = urllib.request.urlopen(target_url)
except:
return None
#html_doc = f.read().decode("ISO-8859-1")
try:
html_doc = f.read().decode("utf-8") # Save source code of URL to html_doc
print(html_doc)
except:
print("I Went here")
html_doc = f.read().decode("ISO-8859-1") # Use other encoding if failed
print("I SAID SO")
print(html_doc)
return html_doc
sadece tekrar() f.read çağırarak tekrar bütün siteyi okumak farz, ama apperently yanılmışım. Bu sorun sadece iyi çözüldü, çok teşekkür ederim! – user3473493