Python爬取广州链家二手房数据

本文介绍如何使用Python爬取广州链家二手房的静态网页数据。通过分析网页结构,发现房源信息位于特定标签内,且页面结构和翻页链接规律明显。在Windows环境下,借助PyCharm和Anaconda解释器,遵循获取URL、解析网页、保存数据的步骤,实现网络爬虫项目。
摘要由CSDN通过智能技术生成

微信公众号:数据分析与统计学习
如有问题或建议,请公众号留言
最近更新时间:2018-7-28

一、前言

依据网页的结构元素,网络爬虫可以分为爬取静态网页和动态网页,网络世界中大部分的网站属于静态网页,例如各政府,企业,组织机构的官方网站;动态网页例如淘宝、各大新闻门户网站等。
本次主要讲爬取静态网页,以爬取广州链家二手房的数据为例。
首先观察广州链家二手房的网页结构。发现房源信息都在标签<li class="clear LOGCLICKDATA">,房源的具体信息都在该标签下的各子标签中。此外,还发现,总共100页,每一网页的结构都相同,且翻页的链接也有明显的规律,属于静态网页。

二、爬虫的相关说明

我是在Windows系统下用Pycharm集成开发环境实现网络爬取广州链家二手房数据,解释器是用Anaconda。

三、网络爬虫流程说明

一个轻量级的网络爬虫项目,应该具备如下两个步骤。第一,获取网页上的目标链接(URL);第二,目标网页解析,从网页中提取我们所需要的数据;第三保存我们想要的数据。

四、网络爬虫代码实现

Python是一门强大的编程语言,也可以用来爬取网页信息。如果你想要爬取链家石家庄二手房信息,可以通过以下步骤实现: 1. 导入需要的库:requests、BeautifulSoup和pandas等。 2. 构建请求头部信息,设置请求头部信息中的User-Agent参数,模拟浏览器访问。 3. 使用requests库发送请求,获取网页源代码。 4. 使用BeautifulSoup库对网页源代码进行解析,提取所需信息,如房屋总价、单价、面积、户型、楼层、朝向、装修情况、小区名称和地址等。 5. 将提取的信息存储到pandas的DataFrame中,并保存为csv文件。 下面是Python爬取链家石家庄二手房信息的示例代码: ``` import requests from bs4 import BeautifulSoup import pandas as pd # 构建请求头部信息 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 设置访问链接 url = 'https://sjz.lianjia.com/ershoufang/' # 发送请求 res = requests.get(url, headers=headers) # 解析网页源代码 soup = BeautifulSoup(res.text, 'html.parser') # 提取所需信息 total_price = soup.select('.priceInfo .totalPrice').text.strip() unit_price = soup.select('.unitPrice .value').text.strip() house_info_list = soup.select('.info .address .houseInfo') room_list = [info.text.split('|') for info in house_info_list] area_list = [info.text.split('|') for info in house_info_list] floor_list = [info.text.split('|') for info in house_info_list] orientation_list = [info.text.split('|') for info in house_info_list] decoration_list = [info.text.split('|') for info in house_info_list] community_list = soup.select('.info .flood .positionInfo a').text.strip() address_list = soup.select('.info .flood .positionInfo').text.strip().split('\xa0\xa0') # 存储为DataFrame,并保存为csv文件 df = pd.DataFrame({'房屋总价': total_price, '单价': unit_price, '户型': room_list, '面积': area_list, '楼层': floor_list, '朝向': orientation_list, '装修情况': decoration_list, '小区名称': community_list, '地址': address_list}) df.to_csv('lianjia_shijiazhuang.csv', index=False) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值