小编Mr.*_*. B的帖子

Scrapy:如何从spider_idle事件回调中手动插入请求?

我创建了一个蜘蛛,并将方法链接到spider_idle事件.

如何手动添加请求?我不能只从parse返回项目 - 在这种情况下解析没有运行,因为已经解析了所有已知的URL.我有一个生成新请求的方法,我想从spider_idle回调运行它来添加创建的请求.

class FooSpider(BaseSpider):
    name = 'foo'

    def __init__(self):
        dispatcher.connect(self.dont_close_me, signals.spider_idle)

    def dont_close_me(self, spider):
        if spider != self:
            return
        # The engine instance will allow me to schedule requests, but
        # how do I get the engine object?
        engine = unknown_get_engine()
        engine.schedule(self.create_request())

        # afterward, ensure we stay alive by raising DontCloseSpider
        raise DontCloseSpider("..I prefer live spiders.")
Run Code Online (Sandbox Code Playgroud)

更新: 我已经确定我可能需要这个ExecutionEngine对象,但我并不知道如何从蜘蛛中获取它,尽管它可以从一个Crawler实例获得.

更新2: ..谢谢...crawler作为超类的属性附加,所以我可以使用self.crawler而不需要额外的努力.>>

python scrapy

11
推荐指数
1
解决办法
2917
查看次数

Docker 登录问题

我在 hub.docker.com 上创建了用户名和密码,但在运行时仍然收到身份验证错误docker run hello-world,甚至当我运行docker login然后输入我的凭据时...但当我这样做时它会显示成功消息:

docker login -u <myusername> -p <mypassword> https://hub.docker.com
Run Code Online (Sandbox Code Playgroud)

但即使在那之后,如果我尝试运行:

docker run hello-world
Run Code Online (Sandbox Code Playgroud)

我犯了同样的错误:

"error response from daemon: login attempt to https://registry-1.docker.io/v2/ failed with status: 401 Unauthorized" 
Run Code Online (Sandbox Code Playgroud)

docker

6
推荐指数
2
解决办法
3万
查看次数

标签 统计

docker ×1

python ×1

scrapy ×1