Python удаление HTML тегов перед загрузкой в БД
хочу очистить собираемую информацию от тегов HTML, смотрел про RegEx, beautiful soup, но как конкретно воспользоваться - не понял. Дело такое, есть парсер HH, который get-запросом собирает вакансии. Кладёт их json-объектами в папку.
def getPage(page = 0):
params = {
'text': 'NAME:Системный аналитик',
'area': 1,
'page': page,
'per_page': 100
}
req = requests.get('https://api.hh.ru/vacancies', params) # Посылаем запрос к API
data = req.content.decode() # Декодируем его ответ, чтобы Кириллица отображалась корректно
req.close()
return data
for page in range(0, 20):
# Преобразуем текст ответа запроса в справочник Python
jsObj = json.loads(getPage(page))
f = open(nextFileName, mode='w', encoding='utf8')
f.write(json.dumps(jsObj, ensure_ascii=False))
f.close()
Потом я загружаю их в БД Postgres SQL
# Проходимся по всем файлам в папке vacancies
for fl in os.listdir('parser/primer1/vacancies'):
f = open('parser/primer1/vacancies/{}'.format(fl), encoding='utf8')
jsonText = f.read()
f.close()
# Текст файла переводим в справочник
jsonObj = json.loads(jsonText)
# Заполняем списки для таблиц
IDs.append(jsonObj['id'])
names.append(jsonObj['name'])
descriptions.append(jsonObj['description'])
# Т.к. навыки хранятся в виде массива, то проходимся по нему циклом
for skl in jsonObj['key_skills']:
skills_vac.append(jsonObj['id'])
skills_name.append(skl['name'])
# Создаем пандосовский датафрейм, который затем сохраняем в БД в таблицу vacancies
df = pd.DataFrame({'id': IDs, 'name': names, 'description': descriptions})
df.to_sql('vacancies', conn, schema='public', if_exists='append', index=False)
# Тоже самое, но для таблицы skills
df = pd.DataFrame({'vacancy': skills_vac, 'skill': skills_name})
df.to_sql('skills', conn, schema='public', if_exists='append', index=False)
Подскажите в каком месте и каким методом лучше воспользоваться.
Моё предположение - после requests воспользоваться "BeautifulSoup", но если честно не знаю как.
req = requests.get('https://api.hh.ru/vacancies', params) # Посылаем запрос к API
data = req.content.decode() # Декодируем его ответ, чтобы Кириллица отображалась корректно
req.close()
return data
