2

Python2のurllibからPython3に移行しようとしています。.urlopen()を使用してhtmlソースを出力できますが、.find()メソッドを使用してインデックスを作成できません。

import urllib.request
fh = urllib.request.urlopen("http://stackoverflow.com")
html = fh.read()
fh.close()

print(html.find("<p>"))

タイプエラーが発生します。バイト配列を返すことは理解していますが、それが実際に何を意味するのかについてはかなりあいまいです。私は行き止まりになっているこのようないくつかのSOの答えを試しました。私の質問は:

Python 3でURLのページソースを文字列として取得するための簡単なネイティブメソッドはありますか?

4

1 に答える 1

3

使用できるオブジェクトhtml.decode('utf-8')を取得するには、(またはそれがたまたまあるエンコーディングを)使用します。str.find()

.decode()は、フラットなバイトセットを取得し、それらを(UTF-8などの文字エンコードを逆にして)実際のコードポイントの文字列(表示可能なシンボル)に変換するために使用されます。

于 2012-05-02T04:54:19.227 に答える