首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用刮红的例子?

如何使用刮红的例子?
EN

Stack Overflow用户
提问于 2015-04-28 03:54:35
回答 1查看 3.9K关注 0票数 2

我读过“刮红书”( 示例 of scrapy),但仍然不太懂如何使用它。

我运行了一只名为dmoz的蜘蛛,它运行得很好。但当我启动另一只名为mycrawler_redis的蜘蛛时,它什么也没有得到。

此外,对于请求队列是如何设置的,我感到非常困惑。我没有在示例项目中找到说明请求队列设置的任何代码。

如果不同机器上的蜘蛛想要共享同一个请求队列,我该如何完成呢?似乎我应该首先让从机连接到主计算机的redis,但是我不确定应该将相关代码放在哪个部分,在spider.py中还是在命令行中输入?

我对刮红很陌生,任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-28 07:39:09

如果示例爬行器正在工作,而您的自定义蜘蛛不起作用,那么一定有您做错了什么。用代码更新您的问题,包括所有相关部分,这样我们就可以看到出了什么问题。

此外,对于请求队列是如何设置的,我感到非常困惑。我没有在示例项目中找到说明请求队列设置的任何代码。

就您的蜘蛛而言,这是通过适当的项目设置来完成的,例如,如果您想要FIFO:

代码语言:javascript
复制
# Enables scheduling storing requests queue in redis.
SCHEDULER = "scrapy_redis.scheduler.Scheduler"

# Don't cleanup redis queues, allows to pause/resume crawls.
SCHEDULER_PERSIST = True

# Schedule requests using a queue (FIFO).
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderQueue'

就实现而言,队列是通过RedisSpider完成的,您必须从您的蜘蛛继承它。您可以在这里找到排队请求的代码:redis/调度器.L73#L73

至于连接,您不需要手动连接到redis计算机,只需在设置中指定主机和端口信息:

代码语言:javascript
复制
REDIS_HOST = 'localhost'
REDIS_PORT = 6379

连接是在ċonnection.pyredis/connection.py中配置的,使用示例可以在以下几个地方找到:redis/管道#L17

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29910007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档