如何用BeautifulSoup提取img标签的src属性值?
解决BeautifulSoup提取img标签src属性的问题
你现在用多次next_element来获取src的方式完全是走了弯路,而且这种方式极度依赖HTML节点的顺序,一旦页面结构有细微变化就会出错,这也是你得到<a>标签而不是目标src的原因。
其实BeautifulSoup提供了非常直接的方式来获取标签的属性,给你两种可靠的解决方案:
方法1:直接通过字典键访问属性
找到目标img标签后,直接用["src"]来获取它的src属性值:
containers[0].find("img")["src"]
方法2:使用get()方法(更安全)
如果担心某些img标签可能没有src属性,用get()方法可以避免抛出异常,还能设置默认值:
# 获取src,不存在则返回None containers[0].find("img").get("src") # 或者设置默认值,比如空字符串 containers[0].find("img").get("src", "")
更精准定位img标签
如果你需要确保只匹配到class="product-pic"的img标签,可以在find()方法里指定class条件(注意这里用class_,因为class是Python的关键字):
containers[0].find("img", class_="product-pic")["src"]
用上面的方法就能直接得到你期望的src值:
//cdn.shopify.com/s/files/1/1385/4109/products/Beef_Patties_grande_41a52a6f-1d85-499c-be1d-06ecb318c2ad_large.jpg?v=1469212539
内容的提问来源于stack exchange,提问作者hdrajani
相关产品推荐
相关产品推荐

