Парсер всех XML файлов в папке
Есть задача - сделать парсер для всех XML файлов, лежащих в папке на рабочем столе, используя BS4 и/или LXML. Я новичок в этом вопросе, и единственное, на что хватило чтения документации - написать парсер для одного документа. А нужен такой, который пройдется по всем файлам (их слишком много, в ручную никогда не переписать, ибо файлы копились годами).
Ближе к сути - мой парсер считывает 4 тега в документе, и в дальнейшем он должен считывать теги вообще всех файлов, и сепарировать их по спискам (условный тег в список 1, в список 2 и т.д. Пример текущего скрипта для парсинга 1 файла:
from bs4 import BeautifulSoup
import lxml
with open("C:/Users/user/Desktop/folder/file.xml") as file:
src = file.read()
soup = BeautifulSoup(src, "lxml")
uid = soup.find("prop", attrs={'name':'uid'})
print(uid.text)
language = soup.find("prop", attrs={'name':'language'})
print(language.text)
source = soup.find("prop", attrs={'name':'source'})
print(source.text)
PROFILE_URL = soup.find('PROFILE_URL')
print(PROFILE_URL)
Как это можно реализовать? Уже весь мозг себе сломал с этим парсингом... Чукча не Senior, тапками не кидаться :))
Ответы (1 шт):
Теперь составьте список из xml файлов и пройдитесь по нему в цикле вставляя в вашу функцию путь к файлу .
import os
f = r"C:/Users/user/Desktop/folder"
e = r".xml"
g = [os.path.join(f, _) for _ in os.listdir(f) if _.endswith(e)]
for a in g:
with open(a, encoding="utf8") as file:
src = file.read()
.....