爬取西安二手房数据(多线程版)

本文介绍了一个使用Python爬虫技术抓取指定网站二手房房源信息的项目,通过多线程和Parsel库解析数据,存储至CSV和MySQL。文章还探讨了项目优化方向,如提高效率的异步方法和改进的存储选项。

目录

项目背景

项目使用的技术栈与环境

所用技术:

平台和环境:

项目功能

项目的具体实现

项目的前期准备:

具体代码部分

首先创建一个HouseSpider类

Clear_data()函数:用于处理格式问题

get_house_data()函数:用于获取房屋的具体信息

Main():程序的主入口

项目结果展示

项目的不足


项目背景

目前房源数据作为人们都经常讨论的话题,房源数据又分为新房和二手房,而二手房想对于新房来说,不管是价格还是其他方面,对于居住地不稳定的打工来来说都是一个不错的选择。那么房源数据如何去获取呢,怎样才能得到自己想要的二手房房源信息呢?

这时候我们就会使用一些办法来获取这些房源数据,比如本项目所用到的python爬虫技术就可以快速的获取到自己想要的房源数据。

项目使用的技术栈与环境

所用技术:

  1. Python(作为该项目实现的编程语言)
  2. Python.requests(主要用于获取网页中的文本信息)
  3. Threading(线程——为了加快爬取速率所使用的一种方法)
  4. Parsel(用于对获取到的网页文本数据进行解析)

平台和环境:

  1. Windows11
  2. Pycharm3.8.10

项目功能

  1. 核心是实现对指定网页(https://xa.lianjia.com/ershoufang)数据进行爬取,并将数据按照指定的格式存储到csv中,方便用户对数据的保存和数据的查看。
  2. 本项目大致分为三个部分,数据的获取,数据解析和数据的存储,使用python自带的requests库对指定网页的文本数据进行获取;对获取的文本信息使用parsel库的一些方法进行文本解析得到所需要的数据;最后解析后的数据使用CSV文件格式和MYSQL进行存储。

项目的具体实现

  • 项目的前期准备:

  1. 首先进入指定的网址观察网页结构
  2. 网址首页页面

点击进入详情页

详情页中基本信息页面内容

首页和详情页之间的关联

        2. 选择所需要获取到的数据内容

需要获取所指定内容,比如首页中的关注人数和发布月份,还有详情页中的总价和单价以及小区的所在位置和基本信息的获取,这些都是需要获取的文本内容。

        3. 需要提前导入以下库,方便后期的函数调用和项目搭建

说明:csv用于处理CSV文件、threading用于多线程处理、datetime用于处理日期时间、ThreadPoolExecutor用于创建线程池、parsel用于解析网页内容、requests用于发送HTTP请求

前期工作已经准备就绪,下面开始具体操作部分

具体代码部分

  • 首先创建一个HouseSpider类

说明:

这是一个继承自Thread类的自定义线程类。在该类中定义了初始化方法__init__()、run()方法和一些辅助方法用于获取和处理房屋数据。

run()方法:在该方法中,使用ThreadPoolExecutor创建一个具有最大工作线程数为20的线程池,并调用get_house_data()方法来获取房屋数据。

  • Clear_data()函数:用于处理格式问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值