使用BeautifulSoup4获取img标签src属性返回异常结果求助
解决方法
你拿到的是懒加载占位图的base64编码内容,很多网站为了优化加载速度,会给img标签的src先放一个极小的占位gif,真实图片地址会存在其他自定义属性里。
- 第一步:检查目标img标签的其他属性,比如
data-src、data-original、data-lazy这类常见的懒加载属性,真实图片链接大概率在这些属性里。 - 第二步:修改代码尝试获取这些属性,比如:
# 先尝试获取data-src属性 pic = hrefs.a.div.div.span.img.get('data-src') # 若该属性不存在,再尝试其他可能的属性 if not pic: pic = hrefs.a.div.div.span.img.get('data-original')
如果上述属性都找不到真实链接,说明图片是通过JavaScript动态渲染的,此时BeautifulSoup这类静态解析工具无法获取到真实地址,需要使用Selenium、Playwright这类能模拟浏览器运行JS的工具,等页面完全加载后再提取图片地址。
内容的提问来源于stack exchange,提问作者CANAKIL
相关产品推荐
相关产品推荐

