python - BeautifulSoup 使用可迭代而不是字符串?
问题描述
我正在使用 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 一个文件句柄对象。
with open("Wikipedia/test.xml", 'r') as xml_file:
soup = BeautifulSoup(xml_file, 'lxml')
推荐阅读
- javascript - 有没有办法确定参数是否是 JavaScript 中的方法?
- .htaccess - .htaccess 将所有子域重定向到相应的文件夹
- javascript - 链接从生成器函数返回的承诺
- docker - 如何使用单个 docker compose 在不同目录中构建容器
- python - 关于霍夫变换及其绘图(3点绘制)
- spring-boot - 如何使用 JUnit5 正确设置 Spring Boot 2.2 REST 完全集成测试
- java - 为什么我在JAVA中得到这个“表达式的类型必须是数组类型但解析为字符串”
- reactjs - 在 React 中为大文件(超过 4kb)加载 WASM 模块的正确方法
- javascript - 在 Javascript 中将文本区域限制为 6 行(行)
- pine-script - 如何更正我在 line.new() 中的负索引?脚本