2017-06-03 3 views
0

ウェブサイトからファイルに書式設定されたhtmlを書き出しようとしています。美しいスープ - 指定されたエンコーディングがフォーマットを中断します

私は避けるために prettifyに渡され、「UTF-8」パラメータ持つ
from bs4 import BeautifulSoup 
import urllib3 

from os import sys 

if len(sys.argv) > 1: 
    url = sys.argv[1] 
    print(url) 
else: 
    url = "www.niceme.me" 

http = urllib3.PoolManager() 
content = http.request("GET", url).data 
soup = BeautifulSoup(content) 

outputFile = open("output.html", 'w') 
outputFile.truncate() 
outputFile.write(str(soup.prettify("UTF-8"))) 

「UnicodeEncodeErrorを: 『ASCII』コーデックが所定の位置に文字をエンコードすることはできません...」のエラー、それは私が行うために必要な読んだものだとして、 。問題は、私が渡すエンコーディングの形式は基本的にprettifyを元に戻し、すべての行をテキストの1行に書き込み/印刷するだけです。新しい行はそれぞれ「\ n」で表されます。これは、

soup.prettify().encode("UTF-8") 

についても同様です。

私はまた、スープを定義しようとしました:

soup = BeautifulSoup(content.decode("UTF-8", "ignore"))

...しかし、それはどちらか動作しません。 私は何かを見つけたり、解決策を見つけることができないと私をナットを運転している!

答えて

0

私は最終的に

私は、バイナリ書き込み可能としてファイルを開くために必要な、それを得た...

outputFile = open("output.html", 'wb')

関連する問題