问题描述
写了一个分布式爬虫,使用虚拟机进行模拟的时候,redis服务器已经启动,并且设置好了可远程连接,爬虫服务器启动后进入监听状态,然后传入redis-key
起始url后,爬虫却为开始爬取,而且仍然无动于衷。
包括直接在本机启动爬虫连接redis,推入连接后也无法启动。
网上相关问题找了很久没有找到,很是费解,求大佬指点一下
是网络问题?还是redis设置问题?又或是其他?
相关代码
爬虫部分代码
# -*- coding: utf-8 -*-
from scrapy_redis.spiders import RedisSpider
from ..items import NowHouseItem, EsfItem
import scrapy
class FangSpider(RedisSpider):
name = 'fang'
allowed_domains = ['fang.com']
# start_urls = ['https://www.fang.com/SoufunFamily.htm']
redis_key = "fang:strat_urls"
province = None
#?-*-?coding:?utf-8?-*-
BOT\_NAME?=?'fangtianxia'
SPIDER\_MODULES?=?['fangtianxia.spiders']
NEWSPIDER\_MODULE?=?'fangtianxia.spiders'
ROBOTSTXT\_OBEY?=?False
DOWNLOAD\_DELAY?=?1
DEFAULT\_REQUEST\_HEADERS?=?{
'Accept':?'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language':?'zh-CN',
}
SPIDER\_MIDDLEWARES?=?{
'fangtianxia.middlewares.UserAgentDownloadMiddleware':?543,
}
#?Scrapy-Redis相关配置
#?确保request存储到redis中
SCHEDULER?=?"scrapy\_redis.scheduler.Scheduler"
#?确保所有爬虫共享相同的去重指纹
DUPEFILTER\_CLASS?=?"scrapy\_redis.dupefilter.RFPDupeFilter"
#?设置redis为item?pipeline
ITEM\_PIPELINES?=?{
'scrapy\_redis.pipelines.RedisPipeline':?300
}
#?在redis中保持scrapy-redis用到的队列,不会清理redis中的队列,从而可以实现暂停和恢复的功能。
SCHEDULER\_PERSIST?=?True
#?设置连接redis信息
REDIS\_HOST?=?'192.168.0.102'
REDIS\_PORT?=?6379
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…