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

Scrapy从CSV读取URL循环爬取报AttributeError错误如何解决

问题根因

报错触发原因是df['link'].values返回的是numpy.ndarray类型对象,该类型不存在to_list()方法:

  • pandas的Series(即df['link']本身)提供带下划线的to_list()方法转换列表
  • numpy数组仅提供全小写无下划线的tolist()方法转换列表
    你混淆了两类对象的API写法导致属性报错。
修复方案

两种可选修复方式,推荐使用第一种:

  • 方案1:直接调用Series的原生方法(无需操作numpy数组,代码最简洁)
    将报错行替换为:
    urlList = df['link'].to_list()
    
  • 方案2:使用numpy数组对应的转换API
    将报错行替换为:
    urlList = df['link'].values.tolist()
    
其他代码优化建议

你的代码还存在几处可调整的问题:

  • 已经通过from scrapy import Request导入了请求类,后续yield时可以直接写Request(url=i, callback=self.parse),无需加scrapy.前缀
  • 导入的from scrapy.http import request没有被使用,可以直接删除避免冗余
  • 当前代码缺少parse方法实现,修复完属性报错后会触发新的报错,需要补充页面解析逻辑
完整修正后的参考代码
import scrapy
import pandas as pd
from scrapy import Request

class PagedataSpider(scrapy.Spider):
    name = 'pagedata'
    allowed_domains = ['www.imdb.com']

    def start_requests(self):
        df = pd.read_csv('list1.csv')
        urlList = df['link'].to_list()
        for url in urlList:
            yield Request(url=url, callback=self.parse)
            
    def parse(self, response):
        # 此处补充你的页面数据提取逻辑
        pass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:06:05