Web サイトからデータをスクレイピングし、見つけたデータをファイルに書き出そうとしています。90% 以上の場合、Unicode エラーは発生しませんが、データに「Burger King®、Hans Café」などの文字が含まれていると、それをファイルに書き込むのが好きではないため、エラー処理で出力されます。そのまま画面に表示され、それ以上のエラーはありません。
エンコード機能とデコード機能、およびさまざまなエンコーディングを試しましたが、役に立ちませんでした。
私が以下に書いた現在のコードの抜粋を見つけてください。
import urllib2,sys
import re
import os
import urllib
import string
import time
from BeautifulSoup import BeautifulSoup,NavigableString, SoupStrainer
from string import maketrans
import codecs
f=codecs.open('alldetails7.txt', mode='w', encoding='utf-8', errors='replace')
...
soup5 = BeautifulSoup(html5)
enc_s5 = soup5.originalEncoding
for company in iter(soup5.findAll(height="20px")):
stream = ""
count_detail = 1
for tag in iter(company.findAll('td')):
if count_detail > 1:
stream = stream + tag.text.replace(u',',u';')
if count_detail < 4 :
stream=stream+","
count_detail = count_detail + 1
stream.strip()
try:
f.write(str(stnum)+","+br_name_addr+","+stream.decode(enc_s5)+os.linesep)
except:
print "Unicode error ->"+str(storenum)+","+branch_name_address+","+stream