Python网络爬虫无法抓取指定网站正文隐藏JPG图片问题求助
问题原因
你的代码存在两个核心问题:
- 语法错误:循环内调用的
images['src']写法错误,images是find_all返回的列表,无法直接取属性,需要改为循环变量image['src'] - 目标站点启用了图片懒加载策略:正文图片初始渲染时
src属性存储的是占位小图地址,真实的大图地址存放在data-src这类自定义属性中
修复后可运行代码
import requests from bs4 import BeautifulSoup as bs url = 'https://omgcheckitout.com/these-trypophobia-photos-will' # 添加请求头模拟浏览器访问,避免被站点反爬策略拦截 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" } r = requests.get(url, headers=headers) r.encoding = r.apparent_encoding soup = bs(r.text, "html.parser") images = soup.find_all('img') for image in images: # 优先读取懒加载的真实大图地址,不存在时再读取src属性 img_url = image.get('data-src') or image.get('src') print(img_url)
补充优化建议
如果需要过滤非正文的无关图片,可以先定位到正文的父容器(通常是class名包含content、article的标签),再在父容器下查找img标签即可。如果站点存在完全动态渲染的内容,静态请求无法获取时,可以改用Selenium、Playwright这类动态渲染工具发起请求。
内容的提问来源于stack exchange,提问作者python Tester
相关产品推荐
相关产品推荐

