如何使用Python将爬取的房产数据存储到CSV并实现索引处理
数据提取与存储实现方法
1. 索引提取目标字段
- 若你手上的输出还保留基础HTML标签,推荐用
BeautifulSoup库解析索引,比正则匹配稳定性高:可以通过标签名、class属性定位到所有房源数据行,再提取文本内容。 - 若已经是清理完标签的纯文本,且每条数据的字段排列顺序固定、有统一分隔符(空格/制表符等),直接按分隔符切割文本后,用列表索引取值即可,索引从0开始计数。
- 若字段顺序不固定,可以用关键字匹配定位:比如包含「平」「㎡」的内容对应Area字段,包含「室」「bedroom」的内容对应Bedroom字段。
2. 写入CSV文件
直接用Python内置的csv模块即可实现,不需要额外安装第三方依赖,示例代码如下:
from bs4 import BeautifulSoup import csv import requests # 第一步:请求获取目标页面内容 url = "你要请求的目标URL" resp = requests.get(url) html_content = resp.text # 第二步:解析提取目标字段 soup = BeautifulSoup(html_content, "html.parser") # 这里的标签筛选规则需要根据你实际的页面结构调整,示例为筛选所有class为house-item的元素 house_items = soup.find_all(class_="house-item") # 定义CSV表头 csv_headers = ["Area", "Bedroom", "Location", "Price", "楼层"] data_list = [] for item in house_items: # 提取单条房源的纯文本,按空格切割为列表 item_text = item.get_text(strip=True) info_list = item_text.split() # 按索引取对应字段,需要根据你实际的字段顺序调整索引值 area = info_list[0] bedroom = info_list[1] location = info_list[2] price = info_list[3] floor = info_list[4] data_list.append([area, bedroom, location, price, floor]) # 第三步:写入CSV文件 with open("house_data.csv", "w", encoding="utf-8-sig", newline="") as f: writer = csv.writer(f) writer.writerow(csv_headers) writer.writerows(data_list)
注意事项
- 代码中的标签筛选规则、字段索引位置需要根据你实际的输出内容调整,和你的数据结构匹配即可运行。
- 用
utf-8-sig编码写入CSV可以避免打开文件时出现中文乱码的问题。
内容的提问来源于stack exchange,提问作者shivani Karna
相关产品推荐
相关产品推荐

