问题引入

系列目录:

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存储相关推荐

  1. python爬取链家新房_Python爬虫实战:爬取链家网二手房数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...

  2. python爬取链家新房数据_Python爬虫实战:爬取链家网二手房数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...

  3. 基于python多线程和Scrapy爬取链家网房价成交信息

    文章目录 知识背景 Scrapy- spider 爬虫框架 SQLite数据库 python多线程 爬取流程详解 爬取房价信息 封装数据库类,方便多线程操作 数据库插入操作 构建爬虫爬取数据 基于百度 ...

  4. python 爬虫实践 (爬取链家成交房源信息和价格)

    简单介绍 pi: 简单介绍下,我们需要用到的技术,python 版本是用的pyhon3,系统环境是linux,开发工具是vscode:工具包:request 爬取页面数据,然后redis 实现数据缓存 ...

  5. python爬虫——使用bs4爬取链家网的房源信息

    1. 先看效果 2. 进入链家网,这里我选择的是海口市点击跳转到链家网 3. 先看网页的结构,这些房子的信息都在li标签,而li标签再ul标签,所以怎么做大家都懂 4. 代码如下,url的链接大家可以 ...

  6. 携程ajax,Python爬虫实战之爬取携程评论

    一.分析数据源 这里的数据源是指html网页?还是Aajx异步.对于爬虫初学者来说,可能不知道怎么判断,这里辰哥也手把手过一遍. 提示:以下操作均不需要登录(当然登录也可以) 咱们先在浏览器里面搜索携 ...

  7. python爬取南京市房价_Python的scrapy之爬取链家网房价信息并保存到本地

    因为有在北京租房的打算,于是上网浏览了一下链家网站的房价,想将他们爬取下来,并保存到本地. 先看链家网的源码..房价信息 都保存在 ul 下的li 里面 ​ 爬虫结构: ​ 其中封装了一个数据库处理模 ...

  8. Python爬虫实战之爬取糗事百科段子

    Python爬虫实战之爬取糗事百科段子 完整代码地址:Python爬虫实战之爬取糗事百科段子 程序代码详解: Spider1-qiushibaike.py:爬取糗事百科的8小时最新页的段子.包含的信息 ...

  9. Python爬虫实战之爬取百度贴吧帖子

    Python爬虫实战之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的 ...

  10. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)

    在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...

最新文章

  1. WPF动画的属性被劫持
  2. 找出MySQL瓶颈的基准测试和剖析
  3. jQuery:1.5.4.3,表格变色(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)...
  4. android 动态修改菜单,如何在Android的“选项”菜单上更改MenuItem?
  5. 几种比较好看的滚动条样式及代码
  6. 平板xmind怎么添加父主题_xmind 怎么插入子主题
  7. 007_Web to lead
  8. KlayGE C++代码风格指南英文版
  9. WSL安装记录及相关
  10. Android——RelativeLayout(相对布局)
  11. 后序遍历二叉树(迭代 vs 递归)
  12. sparksql 保存点_Spark SQL笔记整理(三):加载保存功能与Spark SQL函数
  13. sqlserver实验心得体会_sql查询操作实验总结.docx
  14. win8.1 安装kb2999226 一直提示 搜索更新
  15. 全15期BIM等级考试解析(内附考试秘籍)
  16. C++之个人银行账户管理程序
  17. 深度学习图片文字定位识别
  18. 前后端分离详解(转发)
  19. oracle数据库timestamp类型显示问题(2099年和1999年)
  20. shopee数据分析:虾皮卖家如何正确分析shopee卖场数据?

热门文章

  1. matlab时域数据转频域,从时域和频域来解析傅里叶变换(含代码和性质)
  2. 景观专业设计师必备SketchUp插件合集,你都用过吗?
  3. 数据结构与算法分析(一)基础
  4. 《Android编程入门很简单》PDF版电子书下载
  5. CMD-NET命令详解
  6. 【linux】X Server / X Client / Window manager 的关系
  7. 推荐几个好的粉碎文件的软件?这3款软件让你彻底摆脱无法删除文件的烦恼
  8. 服务器打包文件命令,nuxt构建项目打包部署服务器二(打包部署)
  9. 计算机文化基础—病毒
  10. html文件怎么转换为swf文件,在html里怎么添加flash视频格式(flv、swf)文件