Я использую Python с BeautifulSoup.
У меня есть страница с несколькими этими HTML-блоками:
<div class="col-sm-6 col-md-3"> <div class="thumbnail box-hover thumb-article-product"> <div class="ProductPicWrapper"> <div class="test"> <a href="product_info.php?products_id=5055856419716"><img width="120" height="120" src="https://cdn.smartoys.be/catalog/images/thumbs/120_120/products/x5055856419716.JPG.pagespeed.ic.uX1UW7-Gxw.webp" title="The Elder Scrolls Online : Summerset" alt="The Elder Scrolls Online : Summerset" class="img-responsive" data-pagespeed-url-hash="3637984103" onload="pagespeed.CriticalImages.checkImageForCriticality(this);"/></a> </div> </div> <div class="caption"> <p class="text-center nameart"><a href="product_info.php?products_id=5055856419716">The Elder Scrolls Online : Summerset</a></p> <p class="group inner list-group-item-heading nameart-ean text-center">5055856419716</br>Playstation 4</p> <hr> <p class="text-center article-price article-price-used ">Dès <span itemprop="price">10<span class="product-price-sm">.00€</span></span></p> <p class="text-center"> <span class="label"></span> </p> <div class="text-center"> <div class="btn-group"> <a href="product_info.php?products_id=5055856419716" class="btn btn-danger" role="button">Voir le produit</a> </div> </div> </div> </div></div>
Я хотел бы получить цену. Мне удалось сделать это со страницы, которую я локально сохранил из Chrome, но HTML-код сильно отличается при прямом подключении.
На загруженной странице я просто сделал следующее, чтобы узнать цену (для простоты вынул петли):
productblocks = soup.find_all("div",{"class": "col-sm-6 col-md-3"})
gameprice = productblocks[i].find("p", {"class": "text-center article-price article-price-used "}).text.encode('utf-8').strip()[:-3].replace('Dès ','')
Однако, когда вы делаете это с онлайн-страницей, следующий код не включает ценовой раздел:
productblocks = soup.find_all("div",{"class": "col-sm-6 col-md-3"})
Мне удалось получить имя, код и т. Д. Однако, похоже, что ценовой раздел отсутствует.
print productblocks[0]
возвращается:
<div class="col-sm-6 col-md-3"> <div class="thumbnail box-hover thumb-article-product"> <div class="ProductPicWrapper"> <div class="test"> <a href="product_info.php?products_id=5055856419716"><img alt="The Elder Scrolls Online : Summerset" class="img-responsive" height="120" src="https://cdn.smartoys.be/catalog/images/thumbs/120_120/products/x5055856419716.JPG.pagespeed.ic.CdYmLZol8V.jpg" title="The Elder Scrolls Online : Summerset" width="120"/></a> </div> </div> <div class="caption"> <p class="text-center nameart"><a href="product_info.php?products_id=5055856419716">The Elder Scrolls Online : Summerset</a></p><p class="group inner list-group-item-heading nameart-ean text-center">5055856419716</p></div></div></div>
который явно отсутствует в ценовом разделе. Что я делаю не так?
Спасибо за помощь.