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

为什么我的Scrapy CrawlSpider无法收集链接、无报错退出且无任何结果?

代码问题排查及修复方案

核心错误点

  • 缩进错误(直接导致无输出终止):rules爬取规则、parse_item回调方法都定义在爬虫类的外部,CrawlSpider仅会读取类内部声明的rules属性执行爬取逻辑,找不到规则时爬虫访问完起始页后就会直接结束,不会有后续采集动作。
  • CSS选择器语法错误:::attr("href")中的"是HTML转义引号,不能直接写在Python代码中,会导致匹配不到链接属性。
  • 缺失依赖导入:代码中使用了Product类但没有对应的导入语句,解析逻辑执行时会触发名称错误。

修复后代码示例

from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
# 替换为自身项目Product类的实际导入路径
from your_project.items import Product

class FagorelectrodomesticoSpider(CrawlSpider):
    name = 'fagorelectrodomestico.com'
    allowed_domains = ['fagorelectrodomestico.com']
    start_urls = ['https://fagorelectrodomestico.com']

    rules = (
        Rule(LinkExtractor(allow='product/'), callback='parse_item', follow=True),
    )

    def parse_item(self, response):
        for doc in response.css('a.file'):
            doclink = doc.css('::attr(href)').get()
            product = Product()
            product['model'] = response.css('h2.data__symbol::text').get()
            product['brand'] = 'Fagor'
            product['file_urls'] = [doclink]
            yield product

额外调试建议

如果修复后仍无采集结果,可按以下步骤排查:

  • 用scrapy shell https://fagorelectrodomestico.com测试是否能正常请求目标站点,确认是否存在反爬拦截
  • 在shell中执行LinkExtractor(allow='product/').extract_links(response),确认起始页是否存在匹配规则的产品链接
  • 进入产品页后测试css选择器是否能匹配到对应的元素内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:36:03