请问是否可以使用Visual Studio来调试Scrapy项目?如果可以的话,怎么做呢?
from scrapy.cmdline import execute
execute(['scrapy','crawl', 'spider_name'])
你只需要在项目选项中将该文件设置为启动项。
它可以与Visual Studio 2015一起使用。
嗯,我尝试了所有给出的答案,但都没有对我起作用。其中最接近的是@Rafal Zajac发布的答案,但它也对我失败了。
最终我在这里找到了解决方案,然而有些答案在新版本中也不再适用。
所以对我来说似乎有效的版本是这个:
from scrapy.crawler import CrawlerProcess
from tutorial.spiders.dmoz_spider import DmozSpider
import scrapy.utils.project
from sys import stdin
print ("init...")
spider = DmozSpider()
setttings = scrapy.utils.project.get_project_settings()
process = CrawlerProcess(setttings)
process.crawl(spider)
process.start()
x = stdin.read(1)
这应该在启动脚本中,不需要脚本参数。
我曾经遇到过同样的问题,Yuan的初始答案对我没有用。
要运行Scrapy,您需要打开cmd.exe
并
cd "project directory"
scrapy crawl namespider
-mscrapy.cmdline crawl your_spider_name
的输入参数。请参见 http://imgur.com/2PwF3g0。更新:
看起来在 scrapy 的 1.1 版本中,您需要更改项目调试设置中的“脚本参数”为“runspider <spider 文件名>.py”,然后它应该按预期工作:
我是Python和Scrapy的新手,我认为我遇到了完全相同的问题。
我正在按照Scrapy网站上的教程http://doc.scrapy.org/en/latest/intro/tutorial.html进行操作,所以首先我生成了名为“tutorial”的Scrapy项目的文件结构。
下一步是创建一个新的Python项目“从现有的Python代码”,并选择顶层文件夹“tutorial”。当向导询问要导入哪些文件类型时,我只需使用*.*导入所有内容。如果您保留默认设置,则不会导入文件scrapy.cfg。
我想你已经做到了这一步,你想要的只是在spider类中设置断点,按F5开始调试吧?
我尝试了建议:
在这种情况下,您还必须设置启动文件 - 我无法弄清楚这一部分。您不能使用项目中的任何文件,因为它不起作用,对吧?我尝试将dummy.py(空文件)添加到顶层作为启动文件,但是然后我收到了来自Scrapy的消息:“未知命令:爬行” - 这只是您运行命令“scrapy”但不是从项目文件夹运行时会收到的消息。 也许有一种方法可以使其工作,并且有人可以使用此方法解释完整的设置?我做不对。像ThanhNienDiCho说的那样,在解释器参数中添加“-mscrapy.cmdline crawl your_spider_name”。
from scrapy.cmdline import execute
execute()
所以我用上面的内容用文件scrapy_runner.py替换了我的dummy.py(文件名无关紧要),这就是我的启动文件。
现在,最后一件事是在“项目属性” ->“调试” ->“脚本参数”中添加以下值:
crawl dmoz
其中“dmoz”是教程中蜘蛛的名称。
这个设置对我很有用,希望能帮到你。