Python安徽合肥二手房源爬虫数据可视化系统设计与实现
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
# 获取房源数据
def get_data(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
data = soup.find_all('div', class_='info-panel')
houses = []
for item in data:
house = {
'title': item.find('div', class_='title').text,
'price': item.find('div', class_='price').text,
'area': item.find('div', class_='area').text,
'link': item.find('a')['href']
}
houses.append(house)
return houses
# 分析并可视化数据
def analyze_visualize(houses):
df = pd.DataFrame(houses)
# 只保留有价格信息的房源
df = df[df['price'].notna()]
# 提取单价并转换为浮点数
df['unit_price'] = df['price'].str.extract(r'(\d+)\s*元/平').astype('float')
# 计算总价并转换为浮点数
df['total_price'] = df['link'].str.extract(r'&(?:totalPrice|money)=(\d+)').astype('float')
# 绘制单价直方图
plt.hist(df['unit_price'], bins=50)
plt.xlabel('Unit Price (元/平米)')
plt.ylabel('House Counts')
plt.title('Histogram of Unit Price')
plt.show()
# 主函数
def main():
url = 'http://hz.lianjia.com/ershoufang/anhuigongyu/'
houses = get_data(url)
analyze_visualize(houses)
if __name__ == '__main__':
main()
这段代码实现了一个简单的房源数据爬取、分析和可视化的过程。首先,我们定义了一个get_data
函数来获取安徽合肥二手房源的数据。接着,在analyze_visualize
函数中,我们使用Pandas来处理数据,并使用matplotlib绘制单价直方图,最后在main
函数中调用这两个函数来执行整个流程。这个例子展示了如何使用Python进行网页数据爬取和数据分析,是学习网络爬虫和数据可视化的一个很好的起点。
评论已关闭