Python爬虫实战之爬取链家广州房价_03存储
问题引入
系列目录:
Python爬虫实战之爬取链家广州房价_01简单的单页爬虫
Python爬虫实战之爬取链家广州房价_02把小爬虫变大
这一小节主要讲一下前面一直没有实现的存储,存储主要分两大类:文件和数据库。结合这次爬虫的数据量及后期分析的需要,这次主要介绍SQLite。
思路介绍
通过对SQLite数据库的封装,处理多线程的写入。Python的DB-API接口主要处理Connection对象和Curson对象,应用与数据库之间通信需要建立数据库连接,当一个连接(或连接池)建立后,可以创建一个游标,向数据库发送请求,然后从数据库中接收回应,对象的属性和方法可参考官方的文档说明。关于多线程和数据库的结合,还在摸索当中。
至此完成了对链家广州地区所有小区信息的爬取,可以此为模板实现对在售楼盘和成交记录的爬取,并扩展到其他城市、其他房产APP的爬取,对爬取后的数据进行分析。
代码示例
class SQLiteWraper(object):"""SQLite数据库的封装,处理多线程写入"""def __init__(self, path, command='', *args, **kwargs):self.lock = threading.RLock()self.path = pathif command != '':conn = self.get_conn()cu = conn.cursor()cu.execute(command)def get_conn(self):conn = sqlite3.connect(self.path)conn.text_factory = strreturn conndef conn_close(self, conn=None):conn.close()def conn_trans(func):def connection(self, *args, **kwargs):self.lock.acquire()conn = self.get_conn()kwargs['conn'] = connrs = func(self, *args, **kwargs)self.conn_close(conn)self.lock.release()return rsreturn connection@conn_transdef execute(self, command, method_flag=0, conn=None):cu = conn.cursor()try:if not method_flag:cu.execute(command)else:cu.execute(command[0], command[1])conn.commit()except sqlite3.IntegrityError, e:print ereturn -1except Exception, e:print ereturn -2return 0
复制代码
结果如下:
sqlite> select * from xiaoqu limit 10;
http://gz.lianjia.com/xiaoqu/2113328145985364/|盈港国际|90天成交0套|0套正在出租|南沙|金洲|未知年建成|暂无均价|0套
http://gz.lianjia.com/xiaoqu/2113328662147633/|叠翠峰|90天成交0套|0套正在出租|南沙|南沙区府|未知年建成|暂无均价|0套
http://gz.lianjia.com/xiaoqu/2113668346245868/|富力天海湾|90天成交0套|0套正在出租|南沙|金洲|未知年建成|暂无均价|0套
http://gz.lianjia.com/xiaoqu/2113826645830960/|通大旭日园|90天成交0套|0套正在出租|南沙|金洲|未知年建成|暂无均价|0套
http://gz.lianjia.com/xiaoqu/2113306909962092/|南沙城|90天成交0套|0套正在出租|南沙|金洲|未知年建成|13226元/m2|0套
http://gz.lianjia.com/xiaoqu/2114256349654567/|锦珠广场|90天成交0套|0套正在出租|南沙|金洲|2015年建成|暂无均价|0套
http://gz.lianjia.com/xiaoqu/2112879567532818/|南沙奥园|90天成交0套|0套正在出租|南沙|金洲|未知年建成|7970元/m2|0套
http://gz.lianjia.com/xiaoqu/2114393419248043/|环城北路|90天成交0套|0套正在出租|南沙|大岗镇|未知年建成|暂无均价|0套
http://gz.lianjia.com/xiaoqu/2113199275994557/|南沙珠江湾|90天成交0套|0套正在出租|南沙|金洲|未知年建成|10376元/m2|0套
http://gz.lianjia.com/xiaoqu/2114416717295822/|市南路东涌大街|90天成交0套|0套正在出租|南沙|东涌镇|未知年建成|暂无均价|0套
复制代码
您可能还想看
Hadoop/CDH
Hadoop实战(1)_阿里云搭建Hadoop2.x的伪分布式环境
Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式
Hadoop实战(3)_虚拟机搭建CDH的全分布模式
Hadoop实战(4)_Hadoop的集群管理和资源分配
Hadoop实战(5)_Hadoop的运维经验
Hadoop实战(6)_搭建Apache Hadoop的Eclipse开发环境
Hadoop实战(7)_Apache Hadoop安装和配置Hue
Hadoop实战(8)_CDH添加Hive服务及Hive基础
Hadoop实战(9)_Hive进阶及UDF开发
Hadoop实战(10)_Sqoop import与抽取框架封装
微信公众号「数据分析」,分享数据科学家的自我修养,既然遇见,不如一起成长。
转载请注明:转载自微信公众号「数据分析」
读者交流电报群:
https://t.me/sspadluo
转载于:https://juejin.im/post/5a640c6c6fb9a01cbb393842
Python爬虫实战之爬取链家广州房价_03存储相关推荐
- python爬取链家新房_Python爬虫实战:爬取链家网二手房数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...
- python爬取链家新房数据_Python爬虫实战:爬取链家网二手房数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...
- 基于python多线程和Scrapy爬取链家网房价成交信息
文章目录 知识背景 Scrapy- spider 爬虫框架 SQLite数据库 python多线程 爬取流程详解 爬取房价信息 封装数据库类,方便多线程操作 数据库插入操作 构建爬虫爬取数据 基于百度 ...
- python 爬虫实践 (爬取链家成交房源信息和价格)
简单介绍 pi: 简单介绍下,我们需要用到的技术,python 版本是用的pyhon3,系统环境是linux,开发工具是vscode:工具包:request 爬取页面数据,然后redis 实现数据缓存 ...
- python爬虫——使用bs4爬取链家网的房源信息
1. 先看效果 2. 进入链家网,这里我选择的是海口市点击跳转到链家网 3. 先看网页的结构,这些房子的信息都在li标签,而li标签再ul标签,所以怎么做大家都懂 4. 代码如下,url的链接大家可以 ...
- 携程ajax,Python爬虫实战之爬取携程评论
一.分析数据源 这里的数据源是指html网页?还是Aajx异步.对于爬虫初学者来说,可能不知道怎么判断,这里辰哥也手把手过一遍. 提示:以下操作均不需要登录(当然登录也可以) 咱们先在浏览器里面搜索携 ...
- python爬取南京市房价_Python的scrapy之爬取链家网房价信息并保存到本地
因为有在北京租房的打算,于是上网浏览了一下链家网站的房价,想将他们爬取下来,并保存到本地. 先看链家网的源码..房价信息 都保存在 ul 下的li 里面 爬虫结构: 其中封装了一个数据库处理模 ...
- Python爬虫实战之爬取糗事百科段子
Python爬虫实战之爬取糗事百科段子 完整代码地址:Python爬虫实战之爬取糗事百科段子 程序代码详解: Spider1-qiushibaike.py:爬取糗事百科的8小时最新页的段子.包含的信息 ...
- Python爬虫实战之爬取百度贴吧帖子
Python爬虫实战之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的 ...
- Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)
在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...
最新文章
- WPF动画的属性被劫持
- 找出MySQL瓶颈的基准测试和剖析
- jQuery:1.5.4.3,表格变色(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)...
- android 动态修改菜单,如何在Android的“选项”菜单上更改MenuItem?
- 几种比较好看的滚动条样式及代码
- 平板xmind怎么添加父主题_xmind 怎么插入子主题
- 007_Web to lead
- KlayGE C++代码风格指南英文版
- WSL安装记录及相关
- Android——RelativeLayout(相对布局)
- 后序遍历二叉树(迭代 vs 递归)
- sparksql 保存点_Spark SQL笔记整理(三):加载保存功能与Spark SQL函数
- sqlserver实验心得体会_sql查询操作实验总结.docx
- win8.1 安装kb2999226 一直提示 搜索更新
- 全15期BIM等级考试解析(内附考试秘籍)
- C++之个人银行账户管理程序
- 深度学习图片文字定位识别
- 前后端分离详解(转发)
- oracle数据库timestamp类型显示问题(2099年和1999年)
- shopee数据分析:虾皮卖家如何正确分析shopee卖场数据?
热门文章
- matlab时域数据转频域,从时域和频域来解析傅里叶变换(含代码和性质)
- 景观专业设计师必备SketchUp插件合集,你都用过吗?
- 数据结构与算法分析(一)基础
- 《Android编程入门很简单》PDF版电子书下载
- CMD-NET命令详解
- 【linux】X Server / X Client / Window manager 的关系
- 推荐几个好的粉碎文件的软件?这3款软件让你彻底摆脱无法删除文件的烦恼
- 服务器打包文件命令,nuxt构建项目打包部署服务器二(打包部署)
- 计算机文化基础—病毒
- html文件怎么转换为swf文件,在html里怎么添加flash视频格式(flv、swf)文件