PythonでHTMLページをキャプチャして保存すると文字化けが発生する問題
Pythonを使用してHTMLページをキャプチャして保存すると、キャプチャしたWebページのコンテンツが文字化けするという問題がよく発生します。この問題の理由は、一方では独自のコードのエンコード設定に問題があり、他方ではエンコード設定が正しい場合でも、Web ページの実際のエンコードがマークされたエンコードと一致しないことです。エンコーディング。 HTML ページ マークのエンコードはここにあります:
コードをコピーします コードは次のとおりです:
これは簡単な解決策です。chardet を使用して Web ページの実際のエンコーディングを決定し、同時に URL リクエストによって返された情報からエンコーディングを決定します。 2 つのエンコーディングが異なる場合は、bs モジュールを使用して GB18030 エンコーディングに拡張します。同じ場合は、ファイルを直接書き込みます (システムのデフォルトのエンコーディングはここでは utf-8 に設定されています)。
import urllib2 import sys import bs4 import chardet reload(sys) sys.setdefaultencoding('utf-8') def download(url): htmlfile = open('test.html','w') try: result = urllib2.urlopen(url) content = result.read() info = result.info() result.close() except Exception,e: print 'download error!!!' print e else: if content != None: charset1 = (chardet.detect(content))['encoding'] #real encoding type charset2 = info.getparam('charset') #declared encoding type print charset1,' ', charset2 # case1: charset is not None. if charset1 != None and charset2 != None and charset1.lower() != charset2.lower(): newcont = bs4.BeautifulSoup(content, from_encoding='GB18030') #coding: GB18030 for cont in newcont: htmlfile.write('%s\n'%cont) # case2: either charset is None, or charset is the same. else: #print sys.getdefaultencoding() htmlfile.write(content) #default coding: utf-8 htmlfile.close() if __name__ == "__main__": url = 'http://www.php.cn' download(url)
取得した test.html ファイルを次のように開くと、設定したデフォルトのエンコーディングである UTF-8 BOM フリー エンコーディング形式で保存されていることがわかります。グラブ また、HTMLページ保存時の文字化けに関する関連記事は、PHPの中国語サイトに注目してください!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











このチュートリアルでは、Pythonを使用してZIPFの法則の統計的概念を処理する方法を示し、法律の処理時にPythonの読み取りおよび並べ替えの効率性を示します。 ZIPF分布という用語が何を意味するのか疑問に思うかもしれません。この用語を理解するには、まずZIPFの法律を定義する必要があります。心配しないでください、私は指示を簡素化しようとします。 ZIPFの法則 ZIPFの法則は単に意味します。大きな自然言語のコーパスでは、最も頻繁に発生する単語は、2番目の頻繁な単語のほぼ2倍の頻度で表示されます。 例を見てみましょう。アメリカ英語の茶色のコーパスを見ると、最も頻繁な言葉は「thであることに気付くでしょう。

この記事では、Pythonライブラリである美しいスープを使用してHTMLを解析する方法について説明します。 find()、find_all()、select()、およびget_text()などの一般的な方法は、データ抽出、多様なHTML構造とエラーの処理、および代替案(SEL

ノイズの多い画像を扱うことは、特に携帯電話や低解像度のカメラの写真でよくある問題です。 このチュートリアルでは、OpenCVを使用してPythonの画像フィルタリング手法を調査して、この問題に取り組みます。 画像フィルタリング:強力なツール 画像フィルター

PDFファイルは、クロスプラットフォームの互換性に人気があり、オペレーティングシステム、読み取りデバイス、ソフトウェア間でコンテンツとレイアウトが一貫しています。ただし、Python Plansing Plain Text Filesとは異なり、PDFファイルは、より複雑な構造を持つバイナリファイルであり、フォント、色、画像などの要素を含んでいます。 幸いなことに、Pythonの外部モジュールでPDFファイルを処理することは難しくありません。この記事では、PYPDF2モジュールを使用して、PDFファイルを開き、ページを印刷し、テキストを抽出する方法を示します。 PDFファイルの作成と編集については、私からの別のチュートリアルを参照してください。 準備 コアは、外部モジュールPYPDF2を使用することにあります。まず、PIPを使用してインストールします。 ピップはpです

このチュートリアルでは、Redisキャッシングを活用して、特にDjangoフレームワーク内でPythonアプリケーションのパフォーマンスを向上させる方法を示しています。 Redisのインストール、Django構成、およびパフォーマンスの比較をカバーして、Beneを強調します

この記事では、深い学習のためにTensorflowとPytorchを比較しています。 関連する手順、データの準備、モデルの構築、トレーニング、評価、展開について詳しく説明しています。 特に計算グラップに関して、フレームワーク間の重要な違い

データサイエンスと処理のお気に入りであるPythonは、高性能コンピューティングのための豊富なエコシステムを提供します。ただし、Pythonの並列プログラミングは、独自の課題を提示します。このチュートリアルでは、これらの課題を調査し、グローバルな承認に焦点を当てています

このチュートリアルでは、Python 3にカスタムパイプラインデータ構造を作成し、機能を強化するためにクラスとオペレーターのオーバーロードを活用していることを示しています。 パイプラインの柔軟性は、一連の機能をデータセットに適用する能力にあります。
