django+spider简易爬虫搭建
来源:互联网 发布:大数据研发工程师 编辑:程序博客网 时间:2024/05/18 12:36
今天有空,记录一下搭建爬取链家北京二手房房价的过程,其目的是为了记录每套房源的房价调整过程。我记得12~13年的时候,链家app是可以看到每套房源的价格波动的,现在的app不行了。
工程搭建
python django spider
- 创建django 工程
django-admin startproject houseSpider cd houseSpiderpython manage.py startapp dbmodel # 这里增加一个app,用于数据库操作
- 创建 spider
scrapy startproject lianjiaSpider
* 这两个命令非常相似,scrapy整体框架实现上与Django框架原理很相似,两者都强调松耦合,高度的抽象使编程简单、简洁化,与python设计理念是一致的 *
让spider爬去的数据存入数据库
django给我们提供ORM模型极大的方便了我对数据库的操作,现在我要做的是让spider的item直接使用models.py,之前的博客已经有了该怎么操作–> Django的models.py在外部独立使用 <–
1. 将创建的django项目拷贝到爬虫项目中
- houseSpider是网站,里面有dbmodule,houseSpider,其余的文件是爬虫文件,不要动他们。
这时,我们发现spider 有一个settings.py , django里也有一个settings.py,这两个文件可以合并- 创建一个爬虫
scrapy genspider ljershoufang 'bj.lianjia.com'
- 注意下面的这句话
os.environ['DJANGO_SETTINGS_MODULE'] = 'houseSpider.houseSpider.settings'
这句话需要在每个爬虫里加上,要不然是用不了models的
大概的方法是这样的,中间有写细节问题,我没有及时记录,记不清了。当网站可以运行了,我们就要考虑数据处理的问题了。
数据处理
每日爬去的数据大概有25000左右,我想做的是跟踪每个房源的价格,比如今天200万,明天190万,后台220万,这种都需要对比的。开始的方法是这样的。
* 原始数据,没有经过任何的加工处理,直接存入数据库,查询的时候动态计算。结果耗时是巨大的,展示2000条数据需要大概10分钟,不能忍。
优化1. 开启n个线程,把所有的数据分n片,各种group by 然后汇总结果,期间学习了不少多线程的知识,展示2000条数据大概5分钟,不能忍。
优化2. 爬去数据的时候,后台自己处理。查询数据不做任何计算。展示2000条数据1秒左右。
结果展示
这样,基本能用了。您可以访问小小房虫 感受一下
- django+spider简易爬虫搭建
- django搭建简易博客
- Django搭建简易博客
- 爬虫Spider
- Django 搭建的简易blog
- Django搭建简易博客教程
- Django 搭建简易博客(1)
- Django 搭建简易博客(2)
- Django 搭建简易博客(3)
- Django 搭建简易博客(4)
- Django 搭建简易博客(5)
- Django 搭建简易博客(6)
- 爬虫(Spider),反爬虫(Anti-Spider)
- 爬虫(Spider),反爬虫(Anti-Spider)
- [spider] 爬虫总体模型
- 网络爬虫之Spider
- C#爬虫(Spider)
- 网络爬虫,,,spider
- java :文件和byte数组转换
- [Android]查看代码混淆后的日志
- Java中 outer 标签的使用
- 通过java调用Http接口上传图片到服务器
- Oracle存储过程基本语法介绍
- django+spider简易爬虫搭建
- Parameter 'id' not found. Available parameters are [0, 1, 2, param3, param1, param2]
- 解决XSS攻击漏斗的过滤器
- 两直线四坐标点判断相交并求交点
- 基于maven+spring+springmvc+mabtis的websocket聊天功能和界面
- centos/ubuntu环境下hadoop伪分布式搭建
- linux 安装工具
- dB、dBm、dBw和w的换算关系
- 标签的显示模式