You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python爬虫返回空列表,soup.select选择器是否存在问题?

爬虫选择器返回空列表的排查方向
  • 检查选择器语法:代码里的>是HTML转义字符,Python代码中需替换为正常的>,否则CSS选择器语法错误,无法匹配任何元素。把soup.select('.container > .****** > .img')改成soup.select('.container > .****** > .img')再测试。

  • 核实页面实际结构:

    • 打开目标页面开发者工具(F12),查看元素层级,确认是否存在.container的直接子元素是你打码的类名,且该元素的直接子元素是.img。如果中间有嵌套元素,把直接子元素选择器>换成后代选择器(空格),比如.container .****** .img。
    • 确认.img元素的src属性是否存在,有些图片可能用data-src等自定义属性存储地址,需对应调整取值逻辑。
  • 排查动态加载问题:如果页面通过JavaScript渲染图片,requests只能获取静态HTML,此时需使用Selenium、Playwright等工具模拟浏览器加载完整页面后再解析。

  • 添加请求头规避反爬:部分网站会验证请求头,缺少User-Agent等信息会返回异常页面。给请求添加headers:

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
    }
    resp = requests.get('https://******/************.html', headers=headers)
    
  • 验证返回的HTML内容:在代码中添加print(resp.text),查看实际获取的页面是否和浏览器中一致,确认是否被反爬拦截(比如返回403、空白页或验证码页面)。

  • 检查class名称正确性:确认你打码的.******类名是否完全匹配页面中的实际类名,注意大小写、连字符、多类名的情况(比如元素有多个class时,选择器要写成.class1.class2而非.class1 class2)。

内容的提问来源于stack exchange,提问作者Nguyen Huu Phuc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 21:01:05