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

Scrapy爬虫CSS选择器Shell有效但运行失效,CSV输出异常求助

Scrapy爬虫问题修复方案

核心问题与修复点:

  1. 元素遍历错误
    原代码中products = response.css('li.product-item').get()仅返回单个字符串元素,无法进行后续CSS选择器解析。需改为获取所有匹配的Selector列表:

    products = response.css('li.product-item')  # 直接遍历SelectorList即可,无需额外调用getall()
    
  2. 内部CSS选择器冗余
    遍历的product本身就是li.product-item节点,内部选择器无需重复前缀,否则会匹配失败:

    • 原name选择器:li.product-item > div.product-item-details > h2::text
    • 修正后:div.product-item-details > h2::text
  3. 字段提取逻辑错误

    • 价格字段:原get()返回整个HTML标签,需提取文本内容,例如定位到价格的span标签
    • URL字段:用::attr(href)提取属性更健壮,避免元素不存在时抛出异常
  4. 翻页逻辑错误

    • 分页URL应在循环内部生成,避免未定义变量报错
    • 回调方法名需小写parse,原代码大写Parse会导致找不到方法
    • 分页URL格式错误,需去掉多余的/,正确格式为https://www.stylevana.com/en_US/skincare.html?p={page_num}

修正后的完整代码:

import scrapy

class StylevanaspiderSpider(scrapy.Spider):
    name = "stylevanaspider"
    allowed_domains = ["www.stylevana.com"]
    start_urls = ["https://www.stylevana.com/en_US/skincare.html"]

    def parse(self, response):
        # 获取所有产品节点的Selector列表
        products = response.css('li.product-item')
        for product in products:
            yield {
                'name': product.css('div.product-item-details > h2::text').get(default='').strip(),
                'price': product.css('div.product-item-details > div.price-box span.price::text').get(default=''),
                # 如需旧价格,可取消注释并修正选择器
                # 'old_price': product.css('div.product-item-details > div.price-box span.old-price::text').get(default=''),
                'url': product.css('div > div > div > a::attr(href)').get(default=''),
            }
        
        # 翻页逻辑修正
        for page_num in range(2, 875):
            next_page_url = f'https://www.stylevana.com/en_US/skincare.html?p={page_num}'
            yield response.follow(next_page_url, callback=self.parse)

额外说明:

  • 使用get(default='')可以避免字段为None,导出CSV时更规范
  • 文本提取后用strip()去除多余空格,保证数据整洁
  • 若网站有反爬机制,可在settings.py中添加USER_AGENT模拟浏览器请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:53:31