Python Scrapy:如何编写参数而不是使用cmd:在Scrapy中使用自定义代码

7 浏览
0 Comments

Python Scrapy:如何编写参数而不是使用cmd:在Scrapy中使用自定义代码

我正在使用Python 2.7中的Scrapy 0.20。

我以前在命令提示符中执行以下操作,

 -s JOBDIR=crawls/somespider-1

以处理重复的项目。 请注意,我已经在设置中进行了更改

我不想在命令提示符中使用它。

在我的爬虫程序中,是否有一种方法可以在代码中输入它?

admin 更改状态以发布 2023年5月23日
0
0 Comments

这很容易。在pipelines.py中使用dropitem来删除项目。而且你可以使用自定义命令来编写程序内的参数。

这里是scrapy中自定义代码的例子

使用自定义命令(比如:scrapy crawl mycommand

你可以运行-s JOBDIR=crawls/somespider-1

例如:

创建一个名为commands的目录,其中有scrapy.cfg文件。在该目录中创建一个mycommand.py文件。

from scrapy.command import ScrapyCommand
from scrapy.cmdline import execute
class Command(ScrapyCommand):
    requires_project = True
    def short_desc(self):
        return "This is your custom command"
    def run(self, args, opts):
        args.append('scrapy')
        args.append('crawl')
        args.append('spider')##add what ever your syntax needs.In my case i want to get "scrapy crawl spider" in cmd
        execute(args)#send a list as parameter with command as a single element of it

现在打开命令行并输入scrapy mycommand。然后你的魔法就准备好了:-)

0