关于scrapy爬取的数据没法存到redis数据库中

敲出亿行bug 2020-03-06 04:55:15
settings.py:

#Redis 数据库
REDIS_HOST = "127.0.0.1"
REDIS_PORT = 6379
REDIS_DB_INDEX = 1

pipelines.py:

import redis
class Redis_Spider(object):

def open_spider(self,spider):
host = spider.settings.get("REDIS_HOST","localhost")
port = spider.settings.get("REDIS_PORT",6379)
db_index = spider.settings.get("REDIS_DB_INDEX",0)
self.db_conn = redis.StrictRedis(host=host, port = port, db = 0)
#将数据存储到数据库中
def process_spider(self,item,spider):
item_dict = dict(item)
self.r.rpush("novel",item_dict)
return item
def close_spider(self,spider):
self.r.connection_pool.disconnect()

运行结果:截取片段
2020-03-06 16:44:58 [scrapy.core.engine] INFO: Spider opened
2020-03-06 16:44:58 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2020-03-06 16:44:58 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2020-03-06 16:44:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.qidian.com/robots.txt> (referer: None)
2020-03-06 16:44:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.qidian.com/rank/hotsales?style=1&page=1> (referer: None)
2020-03-06 16:44:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.qidian.com/rank/hotsales?style=1&page=1>

{'name': '诡秘之主', 'author': '爱潜水的乌贼', 'type': '玄幻', 'status': '连载', 'up_date': '最新更新 第三十四章 第四个人'}
2020-03-06 16:44:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.qidian.com/rank/hotsales?style=1&page=1>

{'name': '亏成首富从游戏开始', 'author': '青衫取醉', 'type': '游戏', 'status': '连载', 'up_date': '最新更新 第534章 这都是出于对裴总性格的精确揣摩!(求月票!)'}
2020-03-06 16:44:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.qidian.com/rank/hotsales?style=1&page=1>

{'name': '我师兄实在太稳健了', 'author': '言归正传', 'type': '仙侠', 'status': '连载', 'up_date': '最新更新 第三百二十章 今我来之,君何所思?今你所来,解我所思。'}
2020-03-06 16:44:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.qidian.com/rank/hotsales?style=1&page=1>

{'name': '当医生开了外挂', 'author': '手握寸关尺', 'type': '都市', 'status': '连载', 'up_date': '最新更新 第822章:我要收网了,赶紧上钩!(为盟主你能成大事儿加更1)'}
2020-03-06 16:44:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.qidian.com/rank/hotsales?style=1&page=1>
...全文
613 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
66666666
敲出亿行bug 2020-03-07
  • 打赏
  • 举报
回复
不成功,直接加数据可以,但是爬取得放不进去
敲出亿行bug 2020-03-07
  • 打赏
  • 举报
回复
引用 8 楼 冰风漫天的回复:
你在process_spider函数里打印,看是不是有进来 还有字典应该要转json才能存redis,你执行下 self.db_conn.rpush("novel",json.dumps(item_dict))
问题解决了是函数名写错了,,应该是process-item,不是process-spider
敲出亿行bug 2020-03-07
  • 打赏
  • 举报
回复
引用 9 楼 汲取力量的programer的回复:
[quote=引用 8 楼 冰风漫天的回复:]你在process_spider函数里打印,看是不是有进来 还有字典应该要转json才能存redis,你执行下 self.db_conn.rpush("novel",json.dumps(item_dict))
问题出在了process这个部分,这个函数获取不到db-CONN[/quote] 怎么解决是个问题
敲出亿行bug 2020-03-07
  • 打赏
  • 举报
回复
引用 8 楼 冰风漫天的回复:
你在process_spider函数里打印,看是不是有进来 还有字典应该要转json才能存redis,你执行下 self.db_conn.rpush("novel",json.dumps(item_dict))
问题出在了process这个部分,这个函数获取不到db-CONN
冰风漫天 2020-03-07
  • 打赏
  • 举报
回复
你在process_spider函数里打印,看是不是有进来 还有字典应该要转json才能存redis,你执行下 self.db_conn.rpush("novel",json.dumps(item_dict))
敲出亿行bug 2020-03-07
  • 打赏
  • 举报
回复
引用 6 楼 冰风漫天 的回复:
有打印输出吗?
没有异常输出
冰风漫天 2020-03-07
  • 打赏
  • 举报
回复
有打印输出吗?
冰风漫天 2020-03-06
  • 打赏
  • 举报
回复
如果还是不行的话,这两行你捕捉下异常打印下看看 try: item_dict = dict(item) self.db_conn.rpush("novel",item_dict) except Exception as ex: print(ex)
冰风漫天 2020-03-06
  • 打赏
  • 举报
回复
你上面是self.db_conn = redis.StrictRedis(host=host, port = port, db = 0) 下面为什么不是用 self.db_conn.rpush("novel",item_dict)
敲出亿行bug 2020-03-06
  • 打赏
  • 举报
回复
引用 1 楼 冰风漫天的回复:
有报错么,没有报错吗?
没有报错,控制台有结果显示
冰风漫天 2020-03-06
  • 打赏
  • 举报
回复
有报错么,没有报错吗?

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧