此时已安装vscode,scrapy框架搭建好且已用命令行方式编写了脚本并完成了抓取,但调试仍不能有效进行。
此时需用vscode打开工程文件,在文件菜单将此时含有scrapy.cfg的文件夹添加为工作区,打开爬虫脚本,执行调试。
在上方运行和调试下拉菜单添加配置,此时在打开的launch.json文件中添加配置如下:
"configurations": [
{
“name”:“Scrapy”,
“type”: “python”,
“request”: “launch”,
“module”: “scrapy”,
“args”: [
“crawl”,
“xxx”,
“-o”,
“bikes.json”
]
},
上方xxx改为爬虫名称,其他不用改变,保存后重新执行调试。
若此时报出无法导入工程模块:
其一可能是工作区添加错误,需保证为上述所提的文件夹;
其二可能是此处launch.json增加配置中的cwd工程路径添加重复,导致程序进入未存在的目录中;
解决办法就是检查工作区是否正确,正确后可将cwd的工程路径配置删去。此时正常调试应不报错。
若此时执行成功但无爬取信息展示,无任何爬取反馈,可选择以下另一种方式也可解决:
在工程中与settings同级目录下建立run.py文件在文件中编辑:
from scrapy.cmdline import execute
import sys
import os
# 获取当前脚本路径
dirpath = os.path.dirname(os.path.abspath(__file__))
# print(dirpath)
# 启动爬虫,第三个参数为爬虫name
execute(['scrapy','crawl','xxx'])
上方xxx为爬虫名称,保存后调试,此时可看到调试窗口有变量变化,且终端有爬取信息反馈,已经可以正常调试了。
后者方式每次执行调试的是run.py,而前者可以直接在爬虫脚本运行调试来爬取
其中深层缘由也不甚清楚,这里只是分享实践试出来的一种方法