python3 scrapy_redis 分布式爬取房天下存mongodb

(一)scrapy_redis 简单介绍

scrapy_redis基于scrapy框架的基础上集成了redis,通过了redis实现了去重,多台服务器进行分布式的爬取数据。

(二)scrapy_redis 简单配置

(1)settings.py 文件中加入两行代码:

#启用Redis调度存储请求队列
SCHEDULER = "scrapy_redis.scheduler.Scheduler"

#确保所有的爬虫通过Redis去重
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

image.png

(2)spider文件中把scrapy.Spider改为RedisSpider; 加入redis_key

image.png

以上就是scrapy_redis在scrapy框架中的简单配置,更多的配置内容,请查看以往博客介绍

(三)房天下爬虫代码的编写

(一)获取的内容是优选房源

image.png

起始页:https://m.fang.com/zf/bj/?jhtype=zf

因为这个页面是下滑刷新的,并没有点击下一页的操作,而是动态JS进行加载的,我们可以使用审查元素中的网络,查看接口请求信息

image.png

其中的一个链接:

https://m.fang.com/zf/?purpose=%D7%A1%D5%AC&jhtype=zf&city=%B1%B1%BE%A9&renttype=cz&c=zf&a=ajaxGetList&city=bj&r=0.7838634037101673&page=3

我们可以看到 page=3 只要我们操控这个变量就完全可以了。

但是:当我们打开上面的链接的时候,出现一堆的乱码:

image.png

(二)我们在parse()方法中使用decode 方法解码一下,就可以显示正常了。

    def parse(self,response):
          print(response.body.decode('utf-8'))
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值