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

Scrapy使用CSS选择器无法抓取文章图片URL的技术求助

解决Scrapy无法抓取文章图片链接的问题

问题原因

目标网站的文章图片是通过JavaScript动态渲染加载的,Scrapy默认请求获取的是初始静态HTML,里面只包含网站Logo这类静态资源,不会有JS动态生成的文章图片标签。

解决方案

1. 启用动态页面渲染

使用scrapy-playwright中间件让Scrapy支持渲染JS动态内容,步骤如下:

  • 安装依赖:pip install scrapy-playwright
  • 在Scrapy项目的settings.py中配置:
    DOWNLOAD_HANDLERS = {
        "http": "scrapy_playwright.handler.ScrapyPlaywrightDownloadHandler",
        "https": "scrapy_playwright.handler.ScrapyPlaywrightDownloadHandler",
    }
    PLAYWRIGHT_LAUNCH_OPTIONS = {"headless": True}  # 无头模式,可选False查看浏览器窗口
    
  • 在请求中启用Playwright:
    yield scrapy.Request(url, meta={"playwright": True})
    

2. 正确的CSS选择器(渲染后使用)

获取到动态渲染的页面后,可用以下CSS选择器定位目标图片:

  • 基于文章主图容器的选择器(最可靠):
    response.css('figure.lead-art-wrapper img::attr(src)').get()
    
  • 基于图片自身类名的选择器:
    response.css('img.sc-GVOUr::attr(src)').get()
    

3. 备选:直接抓取API数据(可选)

检查页面的网络请求,找到返回图片信息的API接口,直接请求接口获取图片链接,这种方式效率更高,但需要分析每个页面的API规律。

内容的提问来源于stack exchange,提问作者maahlouontheroad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:58:16