用scrapy-redis分布式爬虫爬取房天下广州的租房信息
我做过用selenium爬取房天下的租房信息也用过ajax分析接口爬取房天下的租房信息但是前两次任务都是小规模地爬取爬取的量比较小。所以这次准备大规模地爬取租房信息使用scrapy-redis分布式爬虫来爬取我只有一台电脑但是我做了两个爬虫来同时爬取一个从首页中爬取出子页面的链接一个从子页面中爬虫租房的详细信息在Pycharm下同时运行两个py文件。在settings.py文件中添加如下设置ROBOTSTXT_OBEY False DUPEFILTER_CLASS scrapy_redis.dupefilter.RFPDupeFilter SCHEDULER scrapy_redis.scheduler.Scheduler SCHEDULER_PERSIST True SCHEDULER_QUEUE_CLASS scrapy_redis.queue.SpiderPriorityQueue #处理重定向 MEDIA_ALLOW_REDIRECTS True DEFAULT_REQUEST_HEADERS { #添加请求头 Accept: text/html,application/xhtmlxml,application/xml;q0.9,*/*;q0.8, Accept-Language: en, User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36, referer: https://m.fang.com/zf/bj/?jhtypezf, authority: m.fang.com, x-requested-with: XMLHttpRequest, sec-fetch-mode: cors, sec-fetch-site: same-origin } ITEM_PIPELINES { fangtianxia.pipelines.FangtianxiaPipeline: 300,#自己编写的pipeline scrapy_redis.pipelines.RedisPipeline: 400 } DOWNLOAD_DELAY 1 LOG_LEVEL DEBUG REDIS_HOST 127.0.0.1#这个端口号可以直接在spiders的py文件中添置 REDIS_PORT 6379#这个端口号可以直接在spiders的py文件中添置自定义items.pyclass FangtianxiaItem(scrapy.Item): # define the fields for your item here like: # name scrapy.Field() text scrapy.Field() dizhi scrapy.Field() zujin scrapy.Field() faxing scrapy.Field()爬取子链接的py文件zufang.py# -*- coding: utf-8 -*- import scrapy import redis from scrapy_redis.spiders import RedisSpider from ..settings import REDIS_HOST,REDIS_PORT import re class ZufangSpider(RedisSpider): name zufang # allowed_domains [fang.com] # start_urls [http://fang.com/] base_url https://m.fang.com/zf/?purpose%D7%A1%D5%ACnotGetPurpose1city%B9%E3%D6%DDrenttypeczczfaajaxGetListcitygzr0.0021985656734149206page redis_key fangtianxia:start_urls #连接到redis pool redis.ConnectionPool(hostREDIS_HOST,port REDIS_PORT,db0) redis redis.StrictRedis(connection_poolpool) for index in range(1,1000): start_url base_url str(index) redis.lpush(fangtianxia:start_urls,start_url) def parse(self, response): res response.text domainurl https://m.fang.com/zf/gz/ results re.findall(ra.*?href\\(.*?), res) # 提取子搜索页面 https://m.fang.com/zf/gz/FAGT_241762951.html for result in results: result result.split(/)[-1] href domainurl result # 拼接子url print({href:href}) self.redis.rpush(fangtianxia:house_urls,href)解析页面的文件zufang1.pyfrom scrapy_redis.spiders import RedisSpider from ..items import FangtianxiaItem class FangtianxiaSpider(RedisSpider): name fangtianxia_down redis_key fangtianxia:house_urls def parse(self,response): item FangtianxiaItem() item[text] response.xpath(/html/body/div[3]/div[1]/section[3]/div[2]/ul/li[1]/p/text()).get() item[dizhi] response.xpath(/html/body/div[3]/div[1]/section[4]/ul/li[2]/a/span/text()).get() item[zujin] response.xpath(/html/body/div[3]/div[1]/section[2]/div[1]/p/span[1]/text()).get() item[faxing] response.xpath(/html/body/div[3]/div[1]/section[2]/div[2]/ul/li[2]/p/text()).get() yield item启动文件 start.pyfrom scrapy import cmdline cmdline.execute(scrapy crawl fangtianxia_down.split())启动文件只能跑一个代码另一个代码须放在Terminal终端运行。python zufang.py在redis数据库中可以看到保存的数据将redis数据中保存的Item信息存储到mongodb中import json,redis,pymongo def main(): rediscli redis.StrictRedis(host127.0.0.1,port6379,db0) mongocli pymongo.MongoClient(hostlocalhost,port27017) db mongocli[zufang] sheet db[info] offset 0 while True: source,data rediscli.blpop([fangtianxia_down:items])#读取的数据为bytes类型 item json.loads(data.decode(utf8))#item转化为字典类型 print(type(item)) print(source) if item[text] ! None:#将值为空的信息滤掉 sheet.insert(item) offset 1 print(offset) try: print(Processing:%s%item) except KeyError: print(Error proceding: %s % item) else: continue if __name__ __main__: main()此篇爬虫主要参考这个https://www.jianshu.com/p/ba67094d2813感谢作者

相关新闻

TPIC7710EVM评估模块深度解析:汽车电子电机驱动与系统验证实战

TPIC7710EVM评估模块深度解析:汽车电子电机驱动与系统验证实战

1. 项目概述:从芯片到系统的评估桥梁 在汽车电子,特别是车身控制与底盘系统开发领域,德州仪器(TI)的TPIC7710是一款专为电子驻车制动(EPB)系统设计的专用集成电路。对于硬件工程师和系统架构师而…

2026/7/28 19:46:32阅读更多 →
使用java反射机制,获取已存在类的信息

使用java反射机制,获取已存在类的信息

使用java反射机制,获取已存在类的信息 反射就是把java类中的各种成分映射成一个个的Java对象 例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象…

2026/7/28 19:46:32阅读更多 →
如何搭建医院陪诊陪护管理系统?本文分析陪诊系统开发全流程与核心模块详解

如何搭建医院陪诊陪护管理系统?本文分析陪诊系统开发全流程与核心模块详解

博主介绍: 所有项目都配有从入门到精通的安装教程,可二开,提供核心代码讲解,项目指导。 项目配有对应开发文档、解析等 项目都录了发布和功能操作演示视频;项目的界面和功能都可以定制,包安装运行&#xff…

2026/7/28 19:46:32阅读更多 →
Python+Django构建租房管理系统:毕业设计实战指南

Python+Django构建租房管理系统:毕业设计实战指南

1. 项目概述:Python租房管理系统的核心价值去年帮学弟调试毕业设计时,我注意到市面上90%的租房管理系统都存在两个通病:要么是功能过度复杂的商业软件,要么是简陋得连基本数据校验都没有的学生作品。这个基于Python的毕业设计项目…

2026/7/28 21:06:52阅读更多 →
上市公司业绩说明会文本数据的价值与应用分析

上市公司业绩说明会文本数据的价值与应用分析

1. 项目概述:上市公司业绩说明会文本数据的价值与应用上市公司业绩说明会文本数据是资本市场信息链中的关键一环。这类数据记录了上市公司管理层与投资者之间的直接对话,包含了大量未在正式财报中披露的细节信息、未来业务展望和行业趋势判断。2017年至2…

2026/7/28 21:06:52阅读更多 →
剪映团队协作与多端同步功能实战解析

剪映团队协作与多端同步功能实战解析

1. 项目概述剪映作为一款全民级短视频编辑工具,其团队协作与多端同步功能正在重塑短视频创作的工作流。我在过去三年里使用剪映完成了超过200个商业短视频项目,深刻体会到这些功能如何将制作效率提升300%以上。2. 核心功能解析2.1 云端工程文件同步剪映的…

2026/7/28 21:06:52阅读更多 →
Win10系统下基于WSL2搭建OpenFOAM与C++开发环境全攻略

Win10系统下基于WSL2搭建OpenFOAM与C++开发环境全攻略

1. 项目概述:为什么要在Win10上准备OpenFOAM环境? 如果你点开了这篇文章,大概率是刚接触计算流体力学(CFD),或者被导师、项目要求使用OpenFOAM这个开源神器。但第一步,很多人就卡在了“环境准备…

2026/7/28 21:06:52阅读更多 →
智能体工程化开发:从零构建可复用的AI Agent工作流

智能体工程化开发:从零构建可复用的AI Agent工作流

1. 先搞清楚这个工作流到底解决什么问题如果你在找一种能直接上手、照着做就能跑起来的智能体开发流程,那 Matt Pocock 和 David Ondrej 分享的这个工作流,值得你花时间研究一下。它不是那种只讲概念、不落地的理论,而是一个从环境搭建、工具…

2026/7/28 21:06:52阅读更多 →
DeepSeek-V3.2-Exp模型在A3架构下的64K上下文性能优化

DeepSeek-V3.2-Exp模型在A3架构下的64K上下文性能优化

1. 项目背景与核心目标 这个标题描述的是DeepSeek-V3.2-Exp模型在特定硬件配置下的性能表现。从标题可以拆解出几个关键信息点: 模型版本:DeepSeek-V3.2-Exp(实验版本) 上下文长度:64K tokens 处理能力:…

2026/7/28 21:04:52阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →