У меня есть этот длинный CSV-файл, в котором текст был неправильно экспортирован, и многие строки разбиты на половину тега HTML, а также на середину предложения, разделенного на другие теги. Таким образом, файл выглядит совсем как этот кусок здесь:
abcdefghijk.</font></div>
<div><font face=""Arial Narrow""> </font><font face=""Arial Narrow""
color=""#262626"">abcdefghijk.abcdefghijk.abcdefghijk.abcdefghijk.abcdefghijk..</font></div>
<div><font face=""Arial Narrow""> </font><font face=""Arial Narrow""
color=""#262626"">abcdefghijk.abcdefghijk.abcdefghijk.abcdefghijk.abcdefghijk.abcdefghijk.abcdefghijk.abcdefghijk.abcdefghijk.abcdefghijk.
<font face=""Arial Narrow""
color=""#262626"">cyvydvdyvd
<div><font face=""Arial Narrow"" color=""#333333"">T</font><font face=""Arial Narrow""
color=""#2F2F2F"">his is the worst part.</font></div>
Я очистил код с помощью Python:
import csv
import re
def cleanhtml(raw_html):
cleanr = re.compile('<.*?>|&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});')
cleantext = re.sub(cleanr, '', raw_html)
return cleantext
, а затем очистил открытые скобки (происходит около 50 замен). ..)
def cleaner(filename):
with open(filename) as f_in, open("test"+".csv", 'w') as f_out:
for line in f_in:
word_new7 = line.replace('<a', ' ')
word_new7a = word_new7.replace('href', '<a href')
word_new23 = word_new7a.replace('Narrow""', 'Narrow"">')
word_new24 = word_new23.replace('face=', '<font face ')
word_new25 = word_new24.replace('color=', '<color= ')
word_new26 = word_new25.replace('style', 'style')
word_new27 = word_new26.replace('face ""Times New Roman""', ' ')
word_new28 = word_new27.replace('face ""Arial Narrow""', ' ')
f_out.write(cleanhtml(word_new28))
Таким образом, результат полон мест, например, где слова просто ломаются и продолжаются в следующей строке.
Другая проблема заключается в том, что нумерация строк должна оставаться прежней, или, по крайней мере, ни одна строка не должна быть удалена, потому что этот файл является частью большой таблицы Excel.
Я пробовал это также с BS4, но это не сработало ..
Я надеюсь, что кто-нибудь может мне помочь С этим .. Также могут помочь небольшие предложения, я бы просто попробовал.
Спасибо и привет