iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何通过python抓取二手房价数据
  • 580
分享到

如何通过python抓取二手房价数据

2023-06-16 12:06:59 580人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“如何通过python抓取二手房价数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何通过Python抓取二手房价数据”吧!模块安装同上次新房一样,这里需要安装以下模块(

这篇文章主要讲解了“如何通过python抓取二手房价数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何通过Python抓取二手房价数据”吧!

模块安装

同上次新房一样,这里需要安装以下模块(当然如果已安装就不用再装了):

# 安装引用模块 pip3 install bs4 pip3 install requests pip3 install lxml pip3 install numpy pip3 install pandas

好了,安装完成后,就可以开始写代码了。至于配置请求头和代理IP地址的代码,上次介绍新房已经说过了,这里不再赘述,下面直接上抓取代码。

二手房价数据对象

在这里我们将二手房的房价信息,创建成一个对象,后续我们只要将获取到的数据保存成对象,再处理就会方便很多。SecHouse  对象代码如下所示:

# 二手房信息对象 class SecHouse(object):     def __init__(self, district, area, name, price, desc, pic):         self.district = district         self.area = area         self.price = price         self.name = name         self.desc = desc         self.pic = pic     def text(self):         return self.district + "," + \                 self.area + "," + \                 self.name + "," + \                 self.price + "," + \                 self.desc + "," + \                 self.pic

获取二手房价信息并保存

准备好了,下面我们依然以贝壳为例,批量爬取其北京地区二手房数据,并保存到本地。这里我主要想说的是如何抓取数据过程,所以这里依然就保存成最简单的  txt 文本格式。如果想保存到数据库,可以自行修改代码进行保存数据库处理。

获取区县信息

我们在抓取二手房信息时,肯定想知道这个房源所在地区,所以这里我写了个方法把北京市所有区县信息抓取下来,并临时保存至列表变量里,以备后续程序中使用,代码如下:

# 获取区县信息 def get_districts():     # 请求 URL     url = 'https://bj.ke.com/xiaoqu/'     headers = create_headers()     # 请求获取数据     response = requests.get(url, timeout=10, headers=headers)     html = response.content     root = etree.HTML(html)     # 处理数据     elements = root.xpath('///div[3]/div[1]/dl[2]/dd/div/div/a')     en_names = list()     ch_names = list()     # 循环处理对象     for element in elements:         link = element.attrib['href']         en_names.append(link.split('/')[-2])         ch_names.append(element.text)      # 打印区县英文和中文名列表     for index, name in enumerate(en_names):         chinese_city_district_dict[name] = ch_names[index]     return en_names

获取地区板块

除了上面要获取区县信息,我们还应该获取比区县更小的板块区域信息,同样的区县内,不同板块地区二手房的价格等信息肯定不一样,所以板块对于我们来说也很重要,具有一次参考价值。获取板块信息代码如下:

# 获取某个区县下所有板块信息 def get_areas(district):     # 请求的 URL     page = "Http://bj.ke.com/xiaoqu/{0}".fORMat(district)     # 板块列表定义     areas = list()     try:         headers = create_headers()         response = requests.get(page, timeout=10, headers=headers)         html = response.content         root = etree.HTML(html)         # 获取标签信息         links = root.xpath('//div[3]/div[1]/dl[2]/dd/div/div[2]/a')          # 针对list进行处理         for link in links:             relative_link = link.attrib['href']             # 最后"/"去掉             relative_link = relative_link[:-1]             # 获取最后一节信息             area = relative_link.split("/")[-1]             # 去掉区县名称,以防止重复             if area != district:                 chinese_area = link.text                 chinese_area_dict[area] = chinese_area                 # 加入板块信息列表                 areas.append(area)         return areas     except Exception as e:         print(e)

获取二手房信息并保存

# 创建文件准备写入 with open("sechouse.txt", "w", encoding='utf-8') as f:     # 定义变量     total_page = 1     # 初始化 list     sec_house_list = list()     # 获取所有区县信息     districts = get_districts()     # 循环处理区县     for district in districts:         # 获取某一区县下所有板块信息         arealist = get_areas(district)         # 循环遍历所有板块下的小区二手房信息         for area in arealist:             # 中文区县             chinese_district = chinese_city_district_dict.get(district, "")             # 中文版块             chinese_area = chinese_area_dict.get(area, "")             # 请求地址             page = 'http://bj.ke.com/ershoufang/{0}/'.format(area)             headers = create_headers()             response = requests.get(page, timeout=10, headers=headers)             html = response.content             # 解析 HTML             soup = BeautifulSoup(html, "lxml")              # 获取总页数             try:                 page_box = soup.find_all('div', class_='page-box')[0]                 matches = re.search('.*data-total-count="(\d+)".*', str(page_box))                 # 获取总页数                 total_page = int(math.ceil(int(matches.group(1)) / 10))             except Exception as e:                 print(e)              print(total_page)             # 设置请求头             headers = create_headers()             # 从第一页开始,遍历到最后一页             for i in range(1, total_page + 1):                 # 请求地址                 page = 'http://bj.ke.com/ershoufang/{0}/pg{1}'.format(area,i)                 print(page)                 # 获取返回内容                 response = requests.get(page, timeout=10, headers=headers)                 html = response.content                 soup = BeautifulSoup(html, "lxml")                  # 获得二手房查询列表                 house_elements = soup.find_all('li', class_="clear")                 # 遍历每条信息                 for house_elem in house_elements:                     # 价格                     price = house_elem.find('div', class_="totalPrice")                     # 标题                     name = house_elem.find('div', class_='title')                     # 描述                     desc = house_elem.find('div', class_="houseInfo")                     # 图片地址                     pic = house_elem.find('a', class_="img").find('img', class_="lj-lazy")                      # 清洗数据                     price = price.text.strip()                     name = name.text.replace("\n", "")                     desc = desc.text.replace("\n", "").strip()                     pic = pic.get('data-original').strip()                      # 保存二手房对象                     sec_house = SecHouse(chinese_district, chinese_area, name, price, desc, pic)                     print(sec_house.text())                     sec_house_list.append(sec_house)             # 循环遍历将信息写入 txt             for sec_house in sec_house_list:                 f.write(sec_house.text() + "\n")

到这里代码就写好了,现在我们就可以通过命令 python sechouse.py 运行代码进行数据抓取了。抓取的结果我们可以打开当前目录下  sechouse.txt 文件查看,结果如下图所示:

如何通过python抓取二手房价数据

感谢各位的阅读,以上就是“如何通过python抓取二手房价数据”的内容了,经过本文的学习后,相信大家对如何通过python抓取二手房价数据这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何通过python抓取二手房价数据

本文链接: https://www.lsjlt.com/news/283649.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何通过python抓取二手房价数据
    这篇文章主要讲解了“如何通过python抓取二手房价数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何通过python抓取二手房价数据”吧!模块安装同上次新房一样,这里需要安装以下模块(...
    99+
    2023-06-16
  • 如何用python抓取链家网二手房数据
    本篇内容介绍了“如何用python抓取链家网二手房数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!# -*- coding: utf-8i...
    99+
    2023-06-04
  • Python如何实现对某地区二手房房价进行数据分析
    这篇文章主要介绍了Python如何实现对某地区二手房房价进行数据分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。房价数据分析数据简单清洗data.csv数据显示# ...
    99+
    2023-06-21
  • 详解Python对某地区二手房房价数据分析
    目录房价数据分析数据简单清洗各区均价分析全市二手房装修程度分析各区二手房数量所占比比例热门户型均价分析总结房价数据分析 数据简单清洗 data.csv 数据显示 # 导入模块...
    99+
    2024-04-02
  • Python爬虫之如何爬取我爱我家二手房数据
    这篇文章给大家分享的是有关Python爬虫之如何爬取我爱我家二手房数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、问题说明首先,运行下述代码,复现问题:# -*-coding:utf-8-*-im...
    99+
    2023-06-15
  • 如何让用Python对2019年二手房价格进行数据分析
    这期内容当中小编将会给大家带来有关如何让用Python对2019年二手房价格进行数据分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。利用爬到数据的进行数据分析。在文章中,用到pandas、seaborn...
    99+
    2023-06-16
  • 怎么使用python爬虫爬取二手房数据
    这篇文章主要介绍怎么使用python爬虫爬取二手房数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和floa...
    99+
    2023-06-14
  • Python爬虫之爬取我爱我家二手房数据
    目录一、问题说明二、解决方法三、完整代码四、数据展示一、问题说明 首先,运行下述代码,复现问题: # -*-coding:utf-8-*- import re import r...
    99+
    2024-04-02
  • Python爬虫入门案例之爬取二手房源数据
    本文重点 系统分析网页性质 结构化的数据解析 csv数据保存 环境介绍 python 3.8 pycharm 专业版 >>&...
    99+
    2024-04-02
  • Python如何逆向抓取APP数据
    本篇内容介绍了“Python如何逆向抓取APP数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!所需设备和环境:设备:安卓手机抓包:fidd...
    99+
    2023-06-16
  • 通过python爬取数据
    目标地址:xxxx技术选型:python软件包管理工具:pipenv编辑器:jupyter分析目标地址:gplId表示项目ID,可变参数结果收集方式:数据库代码实现导入相关模块from urllib.parse import urlenco...
    99+
    2023-01-31
    数据 python
  • 如何通过抓取淘宝评论为例讲解Python爬取ajax动态生成的数据
    如何通过抓取淘宝评论为例讲解Python爬取ajax动态生成的数据,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在学习python的时候,...
    99+
    2024-04-02
  • python如何进行爬取链家二手房租赁信息
    本篇文章给大家分享的是有关python如何进行爬取链家二手房租赁信息,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。大家在外打拼的时候都需要租房子住,于是大家就会上各种房子租赁的...
    99+
    2023-06-02
  • 手把手教你Python抓取数据并可视化
    目录前言一、数据抓取篇1.简单的构建反爬措施2.解析数据3.完整代码二、数据可视化篇1.数据可视化库选用2.案例实战(1).柱状图Bar(2).地图Map(3).饼图Pie(4).折...
    99+
    2024-04-02
  • 如何通过python获取甲流分布数据
    这篇文章主要讲解了“如何通过python获取甲流分布数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何通过python获取甲流分布数据”吧!分析网页的网络数据,取得请求头,并用pytho...
    99+
    2023-07-05
  • python如何通过函数取差
    小编给大家分享一下python如何通过函数取差,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!通过函数取差如下方法首先会应用一个给定的函数,然后再返回应用函数后结果...
    99+
    2023-06-27
  • Python如何抓取淘宝IP地址数据
    这篇文章主要介绍Python如何抓取淘宝IP地址数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!示例代码def fetch(ip):    url =&n...
    99+
    2023-06-02
  • php如何抓取网页数据
    在PHP中,可以使用cURL库来抓取网页数据。cURL(Client URL)是一个用于在PHP中进行网络通信的库,可以发送HTTP...
    99+
    2023-09-15
    php
  • Python如何实现抖音评论数据抓取
    小编给大家分享一下Python如何实现抖音评论数据抓取,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. 抓取数据抖音出了 web 版,抓取数据方便了很多。抓评论滑到网页评论区,在浏览器网络请求里过滤包含comment的请...
    99+
    2023-06-28
  • 如何在Python中进行网络数据抓取
    如何在Python中进行网络数据抓取网络数据抓取是指从互联网上获取信息的过程,在Python中,有许多强大的库可以帮助我们实现这个目标。本文将介绍如何使用Python进行网络数据抓取,并提供具体的代码示例。安装必要的库在开始之前,我们需要安...
    99+
    2023-10-22
    数据抓取 Python编程 网络数据抓取
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作