【发布时间】:2019-05-31 12:41:45
【问题描述】:
我正在使用 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+ gigs,所以我不想在 ensoupification 之前将整个文件作为字符串啜饮,我想让 BeautifulSoup 作为迭代器读取数据(甚至可能从 gzcat 来避免将数据放在未压缩的文件中)。
但是,我尝试将字符串以外的任何东西交给 BS 都会导致它窒息。有没有办法让 BS 以流而不是字符串的形式读取数据?
【问题讨论】:
-
据我所知,BS 无法读取可迭代对象。你可能想试试
lxml。
标签: python xml beautifulsoup xml-parsing