Scrapy程序仅执行初始start_urls且终端无输出,求排查
问题1:start_urls仅第一个URL生效
你的start_urls列表存在语法错误:除第一个URL外,其余URL末尾未添加逗号。Python中相邻字符串会自动拼接,导致后面所有URL被合并成一个无效的长URL,Scrapy无法正常请求该地址,因此仅处理了第一个有效的URL。
修复后的start_urls:
start_urls = [ 'https://www.antaira.com/products/10-100Mbps', 'https://www.antaira.com/products/unmanaged-gigabit', 'https://www.antaira.com/products/unmanaged-10-100Mbps-PoE', 'https://www.antaira.com/products/Unmanaged-Gigabit-PoE', 'https://www.antaira.com/products/Unmanaged-10-gigabit', 'https://www.antaira.com/products/Unmanaged-10-gigabit-PoE' ]
问题2:终端无输出的调试方案
开启详细日志:运行爬虫时指定日志级别,生成包含完整请求、响应、错误信息的日志文件:
scrapy crawl productJumperFix --logfile=scrapy.log --loglevel=DEBUG查看
scrapy.log即可定位问题。添加调试打印:在
parse方法中加入打印语句,确认是否收到每个start_url的响应:def parse(self, response): print(f"已接收响应:{response.url}") # 原有遍历代码...修正Item字段赋值:代码中Item字段末尾多了逗号(如
items['name'] = name,),会导致字段值变成元组而非字符串,可能影响数据处理,建议去掉逗号:items['name'] = name items['features'] = features items['overview'] = overview items['main_image'] = main_image items['rel_links'] = rel_links
另外,注释的start_requests方法存在拼写错误:scrappy应为scrapy,修复start_urls后无需启用该方法。
内容的提问来源于stack exchange,提问作者Shadobladez
相关产品推荐
相关产品推荐

