【发布时间】:2016-08-31 17:58:56
【问题描述】:
我在 Python 中使用 BeautifulSoup 解析了一个 XML 文件,但我无法从中提取数据。 XML的结构示例如下:
<Products page="0" pages="-1" records="27">
<Product id="ABC001">
<Name>This product name</Name>
<Cur>USD</Cur>
<Tag>Text</Tag>
<Classes>
<Class id="USD">
<ClassCur>USD</ClassCur>
<Identifier>XYZ123456</Identifier>
</Class>
</Classes>
</Product>
<Product id="XYZ002">
<Name>That product name</Name>
<Cur>EUR</Cur>
<Tag>More Text</Tag>
<Classes>
<Class id="EUR">
<ClassCur>EUR</ClassCur>
<Identifier>VDSHG123456</Identifier>
</Class>
</Classes>
</Product>
</Products>
我一直试图完成但迄今为止未能完成的第一件事是提取所有产品和类 id 的 "ABC001"、"XYZ002" 等。
我试过的是
products = soup.find_all("Product")
for p in products:
print(p.find("name")) # gets the name tag
print(p.find("cur")) # gets the cur tag
# ...etc
但是,我不知道如何在Product 中访问id。例如,p.find("product") 返回None。
请注意,当我使用 bs4 时,我没有有 - 只是我已经使用 Python + bs4 进行了很多网络抓取,并且发现 bs4 在浏览 HTML 时很有用,因此假设这将是处理 XML 的理想方式。
【问题讨论】:
-
向我们展示您迄今为止尝试过的代码。