фактический HTML страница имеет две ссылки за единицу <div>
; один для изображения, другой для <h4>
тега:
<div class="item">
<div class="image">
<a href="/dress/casual-dresses/bella-embroidered-lawn-collection-3-stitched-suits-pkr-14000-only.html" title="BELLA Embroidered Lawn Collection*3 STITCHED [email protected] 14000 ONLY"><img src="/siteimages/upload/BELLA-Embroidered-Lawn-Collection3-STITCHED-SUITSPKR-14000-ONLY_1529IM1-thumb.jpg" alt="Featured Product" /></a> </div>
<div class="detail">
<h4><a href="/dress/casual-dresses/bella-embroidered-lawn-collection-3-stitched-suits-pkr-14000-only.html">BELLA Embroidered Lawn Collection*3 STITCHED [email protected] 14000 ONLY</a></h4>
<em>updated: 2013-06-03</em>
<p>BELLA Embroidered Lawn Collection*3 STITCHED [email protected] 14000 ONLY</p>
</div>
</div>
Limit ваши ссылки только один или другой; Я хотел бы использовать CSS selectors здесь:
links = soup.select('div.featured .detail a[href]')
for link in links:
print "http://www.pakistanfashionmagazine.com/" + link['href']
Сейчас 32 ссылок печатаются, а не 64.
Если вам необходимо ограничить это для только второго featured
раздела (красоты Советов), то сделать это; выберите featured
дивы, выбрать второй из списка, а затем
links = soup.select('div.featured')[1].select('.detail a[href]')
Теперь у вас есть только 8 ссылок в этом разделе.
Код, который я написал, должен печатать только 8 ссылок, и это делается, но каждая ссылка появляется дважды. Причина, по которой вы дали, абсолютно прав. Но исправления, которые вы предложили, дают ненужные ссылки @Martijn Pieters – user3834883
@ user3834883: затем * сузить его дальше *. Страница, на которую вы ссылаетесь, создает 64 ссылки, когда я загружаю ее и запускаю ваш код (с поправкой на отступ). –
@ user3834883: Есть 64 '' ссылок под 'featured' div, 32 уникальных ссылок. –