Как я могу получить информацию из тега в тегах
с BeautifulSoup и Python?

всего. У меня быстрый вопрос о BeautifulSoup с Python. У меня есть несколько фрагментов HTML, которые выглядят следующим образом (единственная разница - ссылки и названия продуктов), и я пытаюсь получить ссылку из атрибута "href".

<div id="productListing1" xmlns:dew="urn:Microsoft.Search.Response.Document">
<span id="rank" style="display:none;">94.36</span>
<div class="productPhoto">
    <img src="/assets/images/ocpimages/87684/00131cl.gif" height="82" width="82" />
</div>
<div class="productName">
    <a class="on" href="/Products/ProductInfoDisplay.aspx?SiteId=1&amp;Product=8768400131">CAPRI SUN - JUICE DRINK - COOLERS VARIETY PACK 6 OZ</a>
</div>
<div class="size">40 CT</div>

В настоящее время у меня есть этот код Python:

productLinks = soup.findAll('a', attrs={'class' : 'on'})
for link in productLinks:
    print link['href']

​​Это работает (для каждой ссылки на странице я получаю что-то вроде /Products/ProductInfoDisplay.aspx?SiteId=1&Product=8768400131 ); однако я пытался выяснить, есть способ получить ссылку в атрибуте "href" без явного поиска 'class = "on"'. Думаю, мой первый вопрос должен заключаться в том, является ли это лучшим способом найти эту информацию (class = "on" кажется слишком общим и, вероятно, сломается в будущем, хотя мои навыки CSS и HTML не так хороши). Я пробовал множество комбинаций методов find, findAll, findAllnext и т. Д., Но не могу заставить их работать. Это в основном то, что у меня было (я переставлял и менял его много раз):

productLinks = soup.find('div', attrs={'class' : 'productName'}).find('a', href=True)

Если это не лучший способ сделать это, как мне добраться до тега из тег

9
задан ekhumoro 18 December 2011 в 14:31
поделиться