我读过“刮红书”( 示例 of scrapy),但仍然不太懂如何使用它。
我运行了一只名为dmoz的蜘蛛,它运行得很好。但当我启动另一只名为mycrawler_redis的蜘蛛时,它什么也没有得到。
此外,对于请求队列是如何设置的,我感到非常困惑。我没有在示例项目中找到说明请求队列设置的任何代码。
如果不同机器上的蜘蛛想要共享同一个请求队列,我该如何完成呢?似乎我应该首先让从机连接到主计算机的redis,但是我不确定应该将相关代码放在哪个部分,在spider.py中还是在命令行中输入?
我对刮红很陌生,任何帮助都将不胜感激!
发布于 2015-04-28 07:39:09
如果示例爬行器正在工作,而您的自定义蜘蛛不起作用,那么一定有您做错了什么。用代码更新您的问题,包括所有相关部分,这样我们就可以看到出了什么问题。
此外,对于请求队列是如何设置的,我感到非常困惑。我没有在示例项目中找到说明请求队列设置的任何代码。
就您的蜘蛛而言,这是通过适当的项目设置来完成的,例如,如果您想要FIFO:
# 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计算机,只需在设置中指定主机和端口信息:
REDIS_HOST = 'localhost'
REDIS_PORT = 6379连接是在ċonnection.py:redis/connection.py中配置的,使用示例可以在以下几个地方找到:redis/管道#L17
https://stackoverflow.com/questions/29910007
复制相似问题