Новичок в Python/xml здесь играет с Python и BeautifulSoup, пытаясь научиться анализировать XML, в частности возиться с API Oodle.com, чтобы перечислять объявления об автомобилях. Я добился успеха с простым XML и BS, но при работе с этим я не могу получить нужные данные, независимо от того, что я пытаюсь. Я часами пытался читать документацию по Soup и не могу понять. XML имеет следующую структуру:
<?xml version="1.0" encoding="utf-8"?>
<oodle_response stat="ok">
<current>
....
</current>
<listings>
<element>
<id>8453458345</id>
<title>2009 Toyota Avalon XL Sedan 4D</title>
<body>...</body>
<url>...</url>
<images>
<element>...</element>
<element>...</element>
</images>
<attributes>
<features>...</features>
<mileage>32637</mileage>
<price>19999</price>
<trim>XL</trim>
<vin>9234234234234234</vin>
<year>2009</year>
</attributes>
</element>
<element>.. Next car here ..</element>
<element>..Aaaand next one here ..</element>
</listings>
<meta>...</meta>
</oodle_response>
Сначала я делаю запрос с помощью urllib, чтобы получить ленту и сохранить ее в локальный файл. Потом:
xml = open("temp.xml", "r")
from BeautifulSoup import BeautifulStoneSoup
soup = BeautifulStoneSoup(xml)
Тогда я не уверен, что. Я пробовал много вещей, но все, кажется, отбрасывает гораздо больше мусора, чем я хочу, и это затрудняет поиск проблемы. Я пытаюсь просто получить id, название, пробег, цену, год, vin. Итак, как мне получить их и ускорить процесс с помощью цикла? В идеале я хотел цикл for, например:
for soup.listings.element in soup.listings:
id = soup.listings.element.id
...
Я знаю, что это, очевидно, не работает, но что-то, что будет извлекать информацию для листинга и сохранять ее в списке, а затем переходить к следующему объявлению. Оцените помощь, ребята