Я искал решения для ошибки, которую у меня есть, но я не нашел / не понял ту, которая будет работать. По сути, если я использую строковые функции (перевод, раздевание и т. Д.), Я получаю ошибки Unicode (кодек ascii не может кодировать символ 'x' в позиции y: порядковый номер не в диапазоне (128). Но когда я пробую Beautiful Soup для обработки текста я не получаю ошибки Unicode, но степень сложности (если я скажу незнакомость) довольно высока для меня. Вот выдержки из кода, который я имею:
...
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
trantab=string.maketrans(",",";")
...
html5 = urllib2.urlopen(address5).read()
time.sleep(1.5)
soup5 = BeautifulSoup(html5)
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 + string.translate(str(tag.text),trantab)
if count_detail < 4 :
stream=stream+","
count_detail = count_detail + 1
print str(storenum)+","+branch_name_address+","+ stream
....
Этот сценарий выполняется некоторое время, а затем бомбы на stream = stream + string.translate(str(tag.text),trantab)
По сути, я просто пытаюсь заменить запятые точкой с запятой в полях, которые я обрабатываю.
Также пытался удалить встроенные пробелы / пробелы, используя string.strip
, но я получаю похожие ошибки.
Как бы я поступил так же, используя Beautiful soup (если заменить запятые точкой с запятой и удалить пробел)?
Или есть код для решения этих надоедливых ошибок Юникода, если я просто придерживаюсь строковых функций?