用Python网络爬虫来教你进行二手房价格及信息爬取(文末送书)

本文主要是介绍用Python网络爬虫来教你进行二手房价格及信息爬取(文末送书),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

举世皆浊我独清,众人皆醉我独醒。

有一天,哥们群里聊到买房问题,因为都上班没几年,荷包还不够重。

然后我就想可以参考某家数据研究研究,房价什么情况了。

爬取准备

某家网站里有新房、二手房、租房等待。如果买房,尤其是在北京的首套,可能二手房是选择之一,那我就针对二手房研究一下。

虽然网上有很多数据源或者教程,但我还是打算重新抓一遍,一是保持数据是最新的,而是练手不犯懒。

需要技能:BeautifulSoup解析数据--正则表达式提取数据--csv存储数据

爬虫思路:常规网站爬虫思路

上图是某家二手房展示页面其中一套房的信息,我需要提取它的:位置、几室几厅、平米数、朝向、装修风格、层数、建造年份、建筑形式、售价。

然后通过HTML分析,找到他们对应的字段(这块爬虫教学里很多,不赘述)

from bs4 import BeautifulSoup
import re
import csv
import requests
import pandas as pd
from random import choice
import time

因为链家二手房一共100页,所以很明确的新建一个csv文档,把它名字取好,把列设置好。

columns = ['小区', '地区', '厅','平米数','方向','状态','层','build-year','形式','钱','单位','网址','推荐语']
# 如果文件由第一行,就不用了
with open('链家二手房100页.csv', 'w', newline='', encoding='utf-8') as file:writer = csv.writer(file, delimiter=',')writer.writerow(columns)file.close()

数据爬取

1. 100页那就写一个循环进行取数

2. 用BeautifulSoup进行页面数据解析

3. 通过正则表达式提取对应字段位置

4. 把提取的信息写入刚刚说的csv文件

5. 为了方便知道进度,在每页结尾加上打印,知道进度

6. 为了防止"给链家服务器带来压力“选择每页隔几秒再切换下页

7. 所有爬完了,打印一个fin~(这是我个人习惯)

i=1
for j in range(100):urll = base_url1+ str(i) +base_url2print(urll)i += 1get_page=requests.get(urll)bs_page = BeautifulSoup(get_page.text, 'html.parser')list_house = bs_page.findAll('div', class_='info clear')for house_one in list_house:house_info    = house_one.find_all('div', class_='houseInfo')position_info = house_one.find_all('div', class_='positionInfo')totalPrice    = house_one.find_all('div', class_='totalPrice')href          = house_one.find_all('div', class_='title')# 正则提取# 小区名,位置position_str  =re.findall('_blank">(.+)</a.+_blank">(.+)?</a', str(position_info))position_str1 =list(position_str[0])# print(type(position_str1),position_str1)# 房子信息house_info_str=re.findall('span>(.+)?</div>', str(house_info))house_info_str = str(house_info_str)[2:-2].split('|')# print(type(house_info_str), house_info_str)totalPrice_str=re.findall('<span>(.+)</span>(.+)</div>', str(totalPrice))totalPrice_str = list(totalPrice_str[0])# print(type(totalPrice_str), totalPrice_str)href_str      =re.findall('http.+html', str(href))# print(type(href_str), href_str)AD_str = re.findall('_blank">(.+)?</a>', str(href))# print(type(AD_str), AD_str)house_all = position_str1 + house_info_str + totalPrice_str + href_str + AD_strprint(house_all)# writer.writerow()with open('链家新房100个.csv', 'a', newline='', encoding='utf-8') as file:writer = csv.writer(file, delimiter=',')writer.writerow(house_all)file.close()print(f'---第{i}页---')times = choice([3, 4, 5, 6])print(f'sleep{times}\n')time.sleep(times)
print('fin')

数据概况

当上边数据跑完了后,可以看到一个表格,打开后数据情况如下:

可以看到,小区名、地点、房型、平米数、方向、层数、建造年代、楼房形式、售价、对应详情页网址就都有啦~

希望对您带来帮助。

文末有送书活动1:在公众号后台回复“自动化”三个字,将有机会参与到《Python自动化测试实战》书籍的送书活动中来,很多小伙伴转自动化了,这个书应该是比较有帮助的,看大家的手气啦,闲时摸摸鱼吧~

文末有送书活动2:在公众号后台回复“深度学习”四个字,将有机会参与到《TensorFlow深度学习实战大全》书籍的送书活动中来,看大家的手气啦,闲时摸摸鱼吧~

文末有送书活动3:在公众号后台回复“线性代数”四个字,将有机会参与到《机器学习线性代数基础》书籍的送书活动中来,看大家的手气啦,闲时摸摸鱼吧~

记得,一共3条肥鱼噢~~

------------------- End -------------------

往期精彩文章推荐:

  • Python环境搭建—安利Python小白的Python和Pycharm安装详细教程

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

你所在城市的房价目前大概多少一平呢?

这篇关于用Python网络爬虫来教你进行二手房价格及信息爬取(文末送书)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298255

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre