Python3を使用してSinaの中国語ホームページにアクセスする方法

WBOY
リリース: 2016-06-16 08:45:10
オリジナル
1304 人が閲覧しました

コードをコピーします コードは次のとおりです。

"""
通常の import urllib.request
html = urllib.request.urlopen("http://www.sina.com").read()
print(html.decode('gbk'))
次のエラーが発生しました

builtins.UnicodeDecodeError: 'gbk' コーデックは位置 1 のバイト 0x8b をデコードできません: 不正なマルチバイト シーケンス

どうすればいいですか?一部の Web サイトでは Web ページの圧縮に gzip が使用されていることがわかりました。

以下のコードを参照してください

python2

import urllib2
from StringIO import StringIO
import gzip
を使用することをお勧めします。

request = urllib2.Request('http://www.sina.com')

request.add_header('Accept-encoding', 'gzip')
response = urllib2.urlopen(request)
if response.info().get('Content-Encoding') == 'gzip':
buf = StringIO(response.read())
f = gzip.GzipFile(fileobj=buf)
data = f.read()
print data.decode("GBK").encode('utf-8')
"""

import io

import urllib.request as r
import gzip
req = r.Request("http://www.sina.com", headers={"User-Agent": " Mozilla/5.0 (Macintosh; Intel Mac OS (req).read()
bi = io.BytesIO(bs)
gf = gzip.GzipFile(fileobj=bi, mode="rb")
print (gf.read().decode( "gbk"))


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!