【发布时间】:2014-09-11 21:02:24
【问题描述】:
我是 Scrapy 和 Python 的新手,我很喜欢它。
是否可以使用 Visual Studio 调试 scrapy 项目?如果可能,怎么做?
【问题讨论】:
标签: python visual-studio-2012 scrapy
我是 Scrapy 和 Python 的新手,我很喜欢它。
是否可以使用 Visual Studio 调试 scrapy 项目?如果可能,怎么做?
【问题讨论】:
标签: python visual-studio-2012 scrapy
我创建了一个名为 runner.py 的初始化文件
from scrapy.cmdline import execute
execute(['scrapy','crawl', 'spider_name'])
您只需在项目选项中将该文件设置为启动。
它适用于 Visual Studio 2015
【讨论】:
您可以在Visual Studio 2012 中安装PTVS。然后从现有的python 代码创建一个python 项目,并导入您的代码。
如果您熟悉 Visual Studio,它与 Visual Studio 中的其他语言相同,例如 C++/C#。只需创建一些断点并使用调试启动您的脚本。
正如 ThanhNienDiCho 所说,将“-mscrapy.cmdline crawl your_spider_name”添加到您的解释器参数中。
【讨论】:
好吧,我尝试了所有给 OP 的答案,但没有一个对我有用。最接近的似乎是@Rafal Zajac 发布的,但它对我来说也失败了。
我最终在here 中找到了解决方案,但是 还有一些答案在新版本中不再有效。
所以似乎对我有用的版本是这样的:
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)
这应该在启动脚本中,不需要脚本参数。
【讨论】:
我遇到了同样的问题,袁的initial answer 对我不起作用。
要运行 Scrapy,您需要打开 cmd.exe 和
cd "project directory"
scrapy crawl namespider
-mscrapy.cmdline crawl your_spider_name 的输入参数。见http://imgur.com/2PwF3g0。【讨论】:
更新:
看起来对于 1.1 版的scrapy,您必须将项目调试设置中的“脚本参数”更改为“runspider
我也是 python 和 scrapy 的新手,我想我遇到了完全相同的问题。
我正在关注 Scrapy 网站上的教程:http://doc.scrapy.org/en/latest/intro/tutorial.html,所以首先我为 scrapy 项目“教程”生成了文件结构。
下一步是“从现有的 python 代码”创建新的 python 项目并选择顶部文件夹“tutorial”。当向导询问要导入哪些文件类型时,我只需使用 *.* 来导入所有内容。如果您保留默认设置,它将不会导入文件 scrapy.cfg。
我猜你已经走到这一步了,你只是想要一个断点,例如在蜘蛛类中,按 F5 并开始调试?
我按照建议尝试了:
正如 ThanhNienDiCho 所说,将“-mscrapy.cmdline crawl your_spider_name”添加到您的解释器参数中。
在这种情况下,您还必须设置启动文件 - 我无法弄清楚这部分。您不能使用项目中的任何文件,因为它不是这样工作的,对吧?我尝试在顶层添加 dummy.py (空文件)作为启动文件,但随后我从 Scrapy 收到一条消息“未知命令:爬行” - 只是运行命令“scrapy”但不是从项目文件夹中。 也许有办法让它工作,有人可以用这种方法解释完整的设置?我没弄好。
最后我注意到scrapy.bat的linux等价物是一个python文件,内容如下:
from scrapy.cmdline import execute
execute()
所以我将我的 dummy.py 替换为具有上述内容的文件 scrapy_runner.py(文件名无关紧要)——这就是我的启动文件。
现在最后一件事是添加到项目属性 -> 调试 -> 脚本参数以下值:
抓取 dmoz
其中“dmoz”是教程中蜘蛛的名字。
此设置对我有用。我希望这会有所帮助。
【讨论】: