免责声明:本项目旨在学习Scrapy爬虫框架和MongoDB数据库,不可使用于商业和个人其他意图。若使用不当,均由个人承担。
###简介
之前用requests + bs4 抓取过宝山区的房源信息,今天我们用scrapy-redis分布式抓取上海17个区所有的房源信息,这个工程比起上一个scrapy-redis抓取自如网/),增加了如下功能:
- 创建了imagepipeline管道,抓取房型图
- 输出csv指定了列顺序
这次只总结学习以上两点内容,关于scrapy-redis的实现,有兴趣可以看第一篇自如/)
###所需要的库
- scrapy
- scrapy-redis
- mongodb
- redis
使用图片管道
新建一个imagepipeline来抓取房型图,这里说下流程
|
|
在items.py中添加image_urls、image_paths
在setting.py中设置如下
|
|
这里要注意下要在itempipelines中开启图片管道才可以抓取房型图,我在学习的时候遇到了个问题,在setting中设置了请求头,图片地址和HOST不一样,导致出现502 Bad Gateway
设置CSV输出列顺序
- 我们在spiders文件中新建csv_item_exporter.py
|
|
- 设置setting.py
|
|
待解决问题
- scrapy-redis输出到数据库的数据全部是bytes
- 使用scrapy-redis分布式抓取后,CSV文件出现乱码,txt保存格式直接为ANSI,用Scrapy框架爬取无此问题,我觉得两个问题是有关联的,跪谢各路网友指教!!!!!
最后放两个笔者GitHub上的两个项目!!欢迎大家访问!!
SpiderList
Scrapy-redis