Вложенные теги BeautifulSoup

Я пытаюсь разобрать XML с помощью Beautifulsoup, но наткнулся на кирпичную стену при попытке использовать атрибут « рекурсивный » с помощью findall ()

У меня довольно странный формат xml, показанный ниже:

<?xml version="1.0"?>
<catalog>
   <book>
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications 
      with XML.</description>
      <book>true</book>
   </book>
   <book>
      <author>Ralls, Kim</author>
      <title>Midnight Rain</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-12-16</publish_date>
      <description>A former architect battles corporate zombies, 
      an evil sorceress, and her own childhood to become queen 
      of the world.</description>
      <book>false</book>
   </book>
 </catalog>

Как видите, тег книги повторяется внутри тега книги, что вызывает ошибку, когда я пытаюсь ввести что-то вроде:

from BeautifulSoup import BeautifulStoneSoup as BSS

catalog = "catalog.xml"


def open_rss():
    f = open(catalog, 'r')
    return f.read()

def rss_parser():
    rss_contents = open_rss()
    soup = BSS(rss_contents)
    items = soup.findAll('book', recursive=False)

    for item in items:
        print item.title.string

rss_parser()

Как вы увидите, на my soup.findAll Я добавил рекурсивный = false, что теоретически сделало бы его не рекурсивным по найденному элементу, а переходило бы к следующему.

Кажется, это не работает, так как я всегда получаю следующую ошибку:

  File "catalog.py", line 17, in rss_parser
    print item.title.string
AttributeError: 'NoneType' object has no attribute 'string'

Я уверен, что делаю здесь что-то глупое, и был бы признателен, если бы кто-нибудь помог мне решить эту проблему. .

Изменение структуры HTML недопустимо, этот код должен работать хорошо, так как он потенциально может анализировать большой XML-файл.

6
задан marcog 4 January 2011 в 23:21
поделиться