从链家上爬取某地区二手房信息(各小区的名称、 价格及坐标),将所有信息绘制在坐标图用matlab写
时间: 2024-04-03 13:31:41 浏览: 84
爬取链家房屋信息-实现代码
可以使用 MATLAB 中的 Web 工具箱和 Mapping 工具箱来实现这个任务。
首先,使用 Web 工具箱中的 `urlread` 函数获取链家网站上的页面内容。例如,可以使用以下代码获取北京市海淀区二手房的页面内容:
```
url = 'https://bj.lianjia.com/ershoufang/haidian/';
content = urlread(url);
```
然后,使用正则表达式或字符串处理函数从页面内容中提取出需要的信息。例如,可以使用以下代码从页面内容中提取出小区名称、价格和坐标:
```
pattern = '<div class="title"><a.*?>(.*?)</a></div>.*?<div class="price"><span>(.*?)</span>万';
tokens = regexp(content, pattern, 'tokens', 'dotexceptnewline');
names = {tokens{:}{1}};
prices = str2double({tokens{:}{2}});
pattern = '<a href="/ershoufang/.*?/(.*?).html" data-el="region">(.*?)</a>.*?data-lng="(.*?)" data-lat="(.*?)"';
tokens = regexp(content, pattern, 'tokens', 'dotexceptnewline');
ids = {tokens{:}{1}};
coords = cellfun(@(x) [str2double(x{2}), str2double(x{1})], tokens, 'UniformOutput', false);
```
接下来,使用 Mapping 工具箱中的 `geopoint` 和 `geoscatter` 函数将提取到的信息绘制在地图上。例如,可以使用以下代码将小区位置和价格绘制在地图上:
```
map = geopoint([coords{:}], 'FeatureNames', names, 'ColorData', prices);
geoscatter(map, 'MarkerSize', 10, 'LineWidth', 1, 'Marker', 'o', 'ColorMap', jet);
```
最后,可以使用 Mapping 工具箱中的 `saveas` 函数将生成的地图保存为图片或 HTML 文件。
需要注意的是,爬取网页信息和绘制地图时,需要遵守相关法律法规和网站的使用规定,不得进行任何违法活动。
阅读全文