matlab 房子,爬虫实战 用matlab爬取链家房价 爬虫入门( 超详细!)

)\d*\.?\d*?(?=)';

HousePrice=string(regexp(source,HousePrice,'match')');

HousePrice(haha)=[];

Average(haha)=[];

同样用正则表达式提取出房价等信息,最后将数据进行整理准备写入

SS=[SS ;Site];

HT=[HT ;HouseType];

HA=[HA; HouseArea];

De=[De; Decoration];

HP=[HP; HousePrice] ;

Av=[ Av ;Average];

DB=[DB ;Describe];

Data=[ string('地址') string('房型') string('大小') string('装修') string('总价/万') string('单价/万');SS HT HA De HP Av;];

xlswrite('Data.xls',Data);

a50dbb49ddce86801f94b36da24043e8.png

4. 下面是完整代码

Type='l'; %表示选中的房型

Area='a'; %表示选中的面积

Price='p'; % 表示选中的价格

% 顺序为 pg l a p,后面需要斜杠

SS=[];HT=[];HA=[];HP=[];De=[];Av=[];DB=[]; % 用于保存得到的数据

p=1:6

for l=1:6

for a=1:6

Website=['https://gz.lianjia.com/ershoufang/' 'pg1' Type num2str(l) Area num2str(a) Price num2str(p)];

[source, state]=urlread(Website);

if ~state

continue;

end

GetTotalPage='(?<="page-data=''{"totalPage":).*?(?=,"curPage)';

TotalPage=str2double(regexp(source,GetTotalPage,'match'));

if isempty(TotalPage)

continue;

end

for pg=1:TotalPage

Website=['https://gz.lianjia.com/ershoufang/' 'pg' num2str(pg) Type num2str(l) Area num2str(a) Price num2str(p)];

[source state]=urlread(Website);

if ~state

disp('爬取网页出错,当前序号:');

l

a

p

end

Site=string(regexp(source,'(?<=

).*?(?=

)','match')');

% aa 为数据集

try

aa=regexp(Site,'/','split');

haha=cell2mat(cellfun(@size ,aa,'UniformOutput',false));

haha=find(haha(:,2)~=5);

aa(haha)=[];

catch

continue;

end

try

aa=reshape([aa{:}],5,length(aa))';

catch

continue

end

Describe=string(regexp(source,'(?<=" data-is_focus="" data-el="ershoufang">).*?(?=

)','match')');

Describe=(regexp(Describe,'(?<=data-is_focus="" data-el="ershoufang">).*?','split'));

Describe=reshape([Describe{:}],2,length([Describe{:}])/2)';

Describe=Describe(:,2);

Describe(haha)=[]; % 简介,标题

Site=aa(:,1);

HouseType=string(aa(:,2));

HouseArea=string(aa(:,3));

Decoration=string(aa(:,5));

clear aa;

Average='(?<=data-price=")\d*\.?\d*?(?=">)';

Average=string(regexp(source,Average,'match')');

HousePrice='(?<=

)\d*\.?\d*?(?=)';

HousePrice=string(regexp(source,HousePrice,'match')');

HousePrice(haha)=[];

Average(haha)=[];

SS=[SS ;Site];

HT=[HT ;HouseType];

HA=[HA; HouseArea];

De=[De; Decoration];

HP=[HP; HousePrice] ;

Av=[ Av ;Average];

DB=[DB ;Describe];

end

end

end

end

Data=[ string('地址') string('房型') string('大小') string('装修') string('总价/万') string('单价/万');SS HT HA De HP Av;];

xlswrite('Data.xls',Data);

结果如下:

f337d879cac934abee53ddd6da0ae1d3.png

如果需要得到更美观的Excel表格请看matlab对Excel进行控制

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值