Scrapy-redis 传入初始url后,监听中的爬虫未启动,求解

问题描述

写了一个分布式爬虫,使用虚拟机进行模拟的时候,redis服务器已经启动,并且设置好了可远程连接,爬虫服务器启动后进入监听状态,然后传入redis-key起始url后,爬虫却为开始爬取,而且仍然无动于衷。
包括直接在本机启动爬虫连接redis,推入连接后也无法启动。

网上相关问题找了很久没有找到,很是费解,求大佬指点一下
是网络问题?还是redis设置问题?又或是其他?

相关代码

  • 服务器端

Scrapy-redis 传入初始url后,监听中的爬虫未启动,求解

  • 爬虫端

Scrapy-redis 传入初始url后,监听中的爬虫未启动,求解

爬虫部分代码

  • 爬虫文件头部设置

# -*- 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

  • settings文件

# -\*- 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


回答:

已经解决了
切回非分布式状态爬取发现,由于之前爬取过于奔放,IP被ban了,加上IP池就正常了
加上IP代理池,重新运行,成功爬取

以上是 Scrapy-redis 传入初始url后,监听中的爬虫未启动,求解 的全部内容, 来源链接: utcz.com/p/937830.html

回到顶部