Почему этот python bs4 & csv писатель код записывает в спецификации? - PullRequest
0 голосов
/ 18 февраля 2020

Я извлекаю многоязычную таблицу из HTML с помощью bs4 и сохраняю ее как csv. Но что бы я ни делал с encoding = utf-8, у меня тот же результат, что и получение BV-файла csv. Есть ли простой способ изменить его с помощью простых опций при очистке и сохранении HTML? (Я изменил utf-8 на eu c - ** опции, поскольку целевой сайт написан на многонациональных языках, но это было напрасно)

soup=bs(res.text,'html.parser',from_encoding='utf8')

    resultset = soup.find('table',class_="type_12345")

    print(resultset)
    records=[]
    for tr in resultset.find_all('tr'):
        tds = tr.find_all('td')
        #url = tds[2].a.get('href')
        records.append([elem.text.encode('utf8') for elem in tds])


    with open('whystillBOM.csv', 'a',encoding="utf-8-sig") as f:
        writer = csv.writer(f)
        writer.writerows(records)

1 Ответ

1 голос
/ 18 февраля 2020

Кодировка utf-8-sig автоматически записывает спецификацию для версии UTF-8 от Microsoft. Если вам не нужна спецификация, просто используйте UTF-8.

Если существует вероятность, что файлы, которые вы читаете, содержат спецификацию, вы можете декодировать их как utf-8-sig и стандартный UTF. -8 все равно будет декодироваться без ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...