import csv
环境介绍:
- Python 3.8
- Pycharm
模块使用:
-
requests >>> pip install requests 数据请求模块
-
parsel >>> pip install parsel 数据解析模块
-
csv 内置模块
实现爬虫思路:
-
明确需求<采集目标网站、需要的数据有哪些>
-
发送请求, 对应分析得到url
-
获取数据, 网页源代码 <比较多, 比较杂乱>
-
解析数据, 提取我们想要的数据内容 <精简之后, 想要的数据>
-
保存数据, 保存表格文件
代码
- 导入数据请求模块
pip install requests import requests
- 导入数据解析模块
pip install parsel import parsel
- 导入csv
import csv
f = open('data100.csv', mode='a', encoding='utf-8', newline='') csv_writer = csv.DictWriter(f, fieldnames=[ '标题', '小区名字', '地段', '总价', '单价', '户型', '面积', '朝向', '装修', '楼层', '架构', '时间', '详情页', ]) csv_writer.writeheader()
发送请求, 模拟浏览器对url<网址/链接>, 发送请求 <完成>
1. 链接
2. 模拟浏览器
3. 发送请求
for page in range(1, 101): print(f'正在采集第{page}页的数据内容')
response = requests.get(url=url, headers=headers) # <Response [200]> 请求成功 print(response) html_data = response.text```
selector = parsel.Selector(html_data) # 把所有房源数据标签获取下来 lis = selector.css('.sellListContent li .info') # 把所有房源数据, 一个一个提取出来 for li in lis: # 提取标题 title = li.css('.title a::text').get() # 提取小区和地段 area_info = li.css('.positionInfo a::text').getall() """ list index out of range area_info[0] --> area_info
area_1 = area_info[0] # 小区名字 area_2 = area_info[1] # 地段 Price = li.css('.totalPrice span::text').get() # 总价 unitPrice = li.css('.unitPrice span::text').get() # 单价 houseInfo = li.css('.houseInfo::text').get() # 信息 if len(houseInfo.split(' | ')) == 7: date = houseInfo.split(' | ')[5] # 时间 else: date = '' house_type = houseInfo.split(' | ')[0] # 户型 house_area = houseInfo.split(' | ')[1] # 面积 face = houseInfo.split(' | ')[2] # 朝向 renovation = houseInfo.split(' | ')[3] # 装修 fool = houseInfo.split(' | ')[4] # 楼层 framework = houseInfo.split(' | ')[-1] # 架构 link = li.css('.title a::attr(href)').get() # 详情页 dit = { '标题': title, '小区名字': area_1, '地段': area_2, '总价': Price, '单价': unitPrice, '户型': house_type, '面积': house_area, '朝向': face, '装修': renovation, '楼层': fool, '架构': framework, '时间': date, '详情页': link, } csv_writer.writerow(dit) print(dit)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?