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

Node.js Puppeteer Web爬虫出现TypeError: text is not iterable错误是什么原因?

错误原因

  • CSV分隔符传参错误
    你调用readCsvAsync('Book_Bulk.csv', ':')时指定分隔符为冒号,但你提供的CSV文件实际是逗号分隔的,csv-parse无法正确拆分字段,导致读取到的row对象不存在CODECONTENT属性,+row.CODECONTENT就会返回NaN。
  • 传入page.type的参数类型错误
    Puppeteer的page.type(selector, text)方法要求第二个参数text必须是字符串类型,你传递的是数字/NaN,方法内部迭代输入字符时就会抛出TypeError: text is not iterable的错误。

修复方案

  1. 修正CSV分隔符参数,把upcData函数里的调用改成逗号分隔:
const rows = await readCsvAsync('Book_Bulk.csv', ',');
  1. 不要对UPC做强制转数字处理,UPC是13位数字字符串,转数字之后可能出现精度丢失,而且不符合page.type的参数要求,修改readCsvAsync里的data事件回调:
.on('data', (row) => rows.push(row.CODECONTENT.trim())) // 保留字符串格式,去掉首尾空格
  1. 可选优化:在循环遍历UPC前加个校验,过滤空值,避免异常:
const allupcs = await upcData();
const validUpcs = allupcs.filter(upc => typeof upc === 'string' && upc.length === 13);
for(let upc of validUpcs){
  // 原有抓取逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:36:04