所以目前我在尝试使用漂亮的汤从网页中提取图片网址时遇到了一些问题。我对美味的汤很缺乏经验,并且非常感谢您对我的任何反馈。以下是我尝试从中提取图片链接的HTML片段(更具体地说,是源媒体标记中的data-srcset网址):
struct lligada **
任何时候我尝试使用该线路
<div class="container-fluid" itemscope="" itemtype="http://schema.org/Product">
<div class="row">
<div id="js_carousel" class="col-xs-12 col-md-8">
<div id="psp-carousel" class="carousel_outer">
<div id="product-carousel" class="pdp-carousel carousel pdp-initial" style="display:block;">
<!-- Wrapper for slides -->
<div class="carousel-inner" id="carousel-inner" role="listbox">
<img class="product-image-placeholder" itemprop="image" alt="..." src="data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' viewBox%3D'0 0 355 462'%3E %3Crect fill%3D'%23eee' width%3D'100%25' height%3D'100%25'%2F%3E%3C%2Fsvg%3E" width="355" height="462">
<picture class="item active" data-image="//s7d2.scene7.com/is/image/aeo/1162_8725_499_of" role="option" aria-selected="true" tabindex="0">
<source media="(max-width: 767px)" data-srcset="//s7d2.scene7.com/is/image/aeo/1162_8725_499_of?$pdp-main_small$" srcset="//s7d2.scene7.com/is/image/aeo/1162_8725_499_of?$pdp-main_small$">
我得到一个空数组。如果这是一个愚蠢的问题,我道歉,但任何帮助都将不胜感激。
答案 0 :(得分:0)
您是否尝试将.select()
函数用于bs4实例? documentation表示这是在HTML汤中查找css元素的首选方法。因此,在这种情况下,请使用page_soup.select('picture[class="item active"]')
代替.findall()
.find()
和.findAll()
适用于Old Soup的旧版本。阅读文档似乎你的旧版本代码应该格式化my_imgs = page_soup.findAll('picture', attrs ={'class':'item active'})
而不是my_imgs = page_soup.findAll('picture',{'class':'item active'})
你忘了包含代码的attrs部分来创建一个字典,然后使用美丽的汤来填充数据具有不能用作关键字参数的名称的属性