我正在使用popshops api &解析美观的XML。数据有四个级别的类别。(即家具是家居和花园的一个子类别,婴儿托儿所家具是家具的一个子类别)
当所有东西都有相同的“类别”标签时,我如何区分类别的4个级别。
<category id="16000" name="Home & Garden">
<categories>
<category id="16669" name="Furniture">
<categories>
<category id="17135" name="Baby Nursery Furniture">
<categories>
<category id="17146" name="Baby Beddings & Blankets" leaf="true"/>发布于 2015-05-26 08:31:55
正如Beautiful Soup文档所强调的,您可以直接引用它们的属性值,而不是元素或标记名:
soup.findAll(id="16000")或
soup.findAll(name="Home & Garden")发布于 2015-05-26 08:53:17
通常,有许多方法可以使用BeautifulSoup区分相同的标记(我不知道您是否对“区分”有特定的定义)。一种可能的方法是通过层次/结构来区分。例如,要仅获取第四级深度<category>s:
subSubSubCategory = soup.select("category category category category");具体到第四级情况,您也可以通过评估属性leaf="true"来获得它们:
subSubSubCategory = soup.select("category[leaf='true']");参考:BeautifulSoup > CSS Selector
附注:如果要解析的只是一个完美有效的lxml,那么可以考虑直接使用XML。
https://stackoverflow.com/questions/30441502
复制相似问题