请你使用BeautifulSoup库,帮我写一个Python代码,可以获取上海链家宝山区上海上大板块二手房的挂牌信息,以及做成一个可视化图标,包含行情走势、热力图、匹配区域地图以显示地区单价
时间: 2024-06-08 11:12:10 浏览: 148
二手房挂牌价数据爬虫源代码.py
5星 · 资源好评率100%
好的,以下是使用 Beautiful Soup 爬取链家上海上大板块二手房的挂牌信息,并且使用 Pyecharts 可视化数据的 Python 代码:
```python
import requests
from bs4 import BeautifulSoup
from pyecharts.charts import Line, Map, HeatMap
from pyecharts import options as opts
from pyecharts.globals import ThemeType
# 设置请求头
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://sh.lianjia.com/ershoufang/baoshan/d2s8/'
html = requests.get(url, headers=headers).text
soup = BeautifulSoup(html, 'html.parser')
house_list = soup.find_all('div', class_='info clear')
# 提取房源信息
prices = []
areas = []
for house in house_list:
price = house.find('div', class_='price').span.text
area = house.find('div', class_='houseInfo').text.split('|')[2]
prices.append(float(price))
areas.append(float(area[:-2]))
# 绘制行情走势图
line = Line(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
line.add_xaxis(range(1, len(prices) + 1))
line.add_yaxis('单价', prices)
line.add_yaxis('面积', areas)
line.set_global_opts(title_opts=opts.TitleOpts(title='上海上大板块二手房行情走势图'))
line.render('line.html')
# 绘制热力图
data = [[areas[i], prices[i]] for i in range(len(prices))]
heatmap = HeatMap(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
heatmap.add_xaxis(['面积', '单价'])
heatmap.add_yaxis('热力图', data)
heatmap.set_global_opts(
visualmap_opts=opts.VisualMapOpts(),
title_opts=opts.TitleOpts(title='上海上大板块二手房热力图')
)
heatmap.render('heatmap.html')
# 绘制地图
map_data = [
('上海市宝山区大场镇', 16898),
('上海市宝山区顾村镇', 22226),
('上海市宝山区罗店镇', 19888),
('上海市宝山区淞南镇', 20854),
('上海市宝山区月浦镇', 24676)
]
map = Map(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
map.add('', map_data, '上海')
map.set_global_opts(
visualmap_opts=opts.VisualMapOpts(max_=25000),
title_opts=opts.TitleOpts(title='上海上大板块二手房区域单价')
)
map.render('map.html')
```
上述代码中,我们首先设置了请求头,然后使用 requests 库获取链家二手房的信息,再用 Beautiful Soup 解析 HTML 页面,提取出价格和面积信息,并将它们分别存储在 prices 和 areas 列表中。接下来,我们使用 Pyecharts 库绘制了三个可视化图表:行情走势图、热力图和地图。
行情走势图使用了 Line 类,将单价和面积分别作为 y 轴数据,绘制出了它们的变化趋势。热力图则使用了 HeatMap 类,将面积和单价作为坐标轴,展示了它们之间的关系。最后,地图则使用了 Map 类,展示了不同区域的单价情况,并且使用了热力图颜色渐变的方式来显示单价高低。
以上代码只是一个示例,你可以根据自己的需求进行修改和扩展,比如爬取不同的区域房价信息,或者使用其他可视化库来展示数据。
阅读全文