Я анализирую файл метаданных Википедии с bs4 и python 3.5
Это работает для извлечения из тестового среза (намного большего) файла:
from bs4 import BeautifulSoup
with open ("Wikipedia/test.xml", 'r') as xml_file:
xml = xml_file.read()
print(BeautifulSoup(xml, 'lxml').select("timestamp"))
Проблема заключается в том, что файлы метаданных имеют все 12+ гигабайт, поэтому вместо того, чтобы изгибать весь файл в виде строки перед присоединением, я бы хотел, чтобы BeautifulSoup считывал данные как итератор (возможно, даже из gzcat, чтобы избежать хранение данных в несжатых файлах).
Однако мои попытки передать BS что-либо, кроме строки, заставляют его задыхаться. Есть ли способ заставить BS читать данные как поток вместо строки?