複数のWebサイトからソースコード(HTML)を読み込み、次のコードを使用しようとしています。サイトがutf-8でエンコードされている限り、うまく動作しますが、ISO-8859-1でエンコードされたサイトはいくつかの問題を引き起こします。下のコードで分かるように、2番目のブロック以外のブロックに行くはずです。プログラムを実行すると、ブロック内のデバッグプリントが出力されます。ただし、変数html_docは値を取得しません。 f.read().deode ...文はtry-exceptブロックの外側にある同じステートメントでコメントアウトされた行として完全に機能します。なぜこれが起こるのですか?私はこれまでに私自身でそれを理解することができなかったので、問題の解決方法に関する提案を本当に感謝しています。Urllibは内部では読み込みません
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
私はちょうど(f.read呼び出すと仮定)、再び、再びサイト全体を読んでいましたが、apperently私は間違っていました。これで問題は解決したので、どうもありがとう! – user3473493