1. 实战概述
- 本次实战项目旨在通过编写Python爬虫步伐,抓取深圳Q房网上的二手房房源信息。我们将分析网页结构,确定房源信息的XPath路径,并实现数据的提取与CSV文件存储。通过本项目,学习如何运用requests库发送HTTP请求,利用lxml.etree解析HTML,以及如何高效地处理处罚和存储爬取的数据。
2. 网站页面分析
- 第1页房源 - https://shenzhen.qfang.com/sale/f1
- 第2页房源 - https://shenzhen.qfang.com/sale/f2
- 发现URL构造规律:https://shenzhen.qfang.com/sale/f + 页码
- 检察房源列表源码
- 针对第一个li,拷贝其XPath://*[@id="cycleListings"]/ul/li[1],去掉[1],根据//*[@id="cycleListings"]/ul/li获取房源列表
- 针对每一个房源,要爬取的信息用红框标注
3. 编写代码爬取Q房二手房房源信息
3.1 创建项目与步伐
- 创建Q房网爬虫实例项目,在里面创建QHouseCrawler.py步伐
- from lxml import etree # 导入lxml解析库
- import requests # 导入HTTP请求库,用于发送网络请求
- import csv # 导入CSV库,用于读写CSV文件
- import time # 导入时间库,用于在请求间添加延迟
- # 定义爬虫主函数
- def spider():
- # 定义爬虫头部信息,模拟浏览器访问
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'
- }
- url_prefix = "https://shenzhen.qfang.com/sale/f" # 定义基础URL前缀
- for page in range(1, 11): # 遍历所有页面,从第1页到第10页
- url = url_prefix + str(page) # 构建完整URL
- html = requests.get(url, headers=headers) # 发送HTTP GET请求
- time.sleep(2) # 等待2秒,避免请求过于频繁
- selector = etree.HTML(html.text) # 解析HTML内容
- house_list = selector.xpath('//*[@id="cycleListings"]/ul/li') # 使用XPath定位所有房屋信息
- for house in house_list: # 遍历每个房屋信息
- apartment = house.xpath('div[2]/div[1]/a/text()')[0] # 提取公寓名称
- house_layout = house.xpath('div[2]/div[2]/p[1]/text()')[0] # 提取房屋布局
- area = house.xpath('div[2]/div[2]/p[2]/text()')[0] # 提取面积
- region = house.xpath('div[2]/div[4]/text()')[0] # 提取地区
- item = [apartment, house_layout, area, region] # 构建数据项列表
- cleaned_item = [i.replace('\r', '').replace('\n', '').replace(' ', '') for i in item] # 清理数据中的换行符和多余空格
- data_writer(cleaned_item) # 写入CSV文件
- print('正在抓取……', cleaned_item) # 打印当前抓取的数据项
- # 将数据写入CSV文件的函数
- def data_writer(item):
- with open('Q房-二手房.csv', 'a', # 打开CSV文件,'a'模式表示追加写入
- encoding='utf-8', newline='') as csvfile: # 设置文件编码为utf-8,避免中文乱码
- writer = csv.writer(csvfile) # 创建CSV写入器
- writer.writerow(item) # 写入一行数据
- if __name__ == '__main__': # 如果直接运行此脚本
- spider() # 调用爬虫函数
复制代码 3.2 运行步伐,检察结果
4. 实战小结
- 在本次实战中,我们成功地分析了深圳Q房网二手房页面的结构,掌握了房源信息的XPath定位方法。通过编写Python爬虫脚本,我们实现了从网页动态加载的房源列表中提取关键信息,并将数据存储至CSV文件。在实践过程中,我们遇到了XPath表达式的优化和数据洗濯的题目,但通过不断调试和改进,终极到达了预期结果。此项目不仅提升了我们的爬虫编写技能,也加深了对网页结构和数据提取流程的明白,为以后处理处罚更复杂的数据抓取使命打下了坚实基础。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |