【从零开始学爬虫】采集58同城房源数据

本文以采集北京市58同城房源数据为例进行演示:

l 采集网站

【场景描述】采集58同城房源数据。

【使用工具】前嗅ForeSpider数据采集系统

http://www.forenose.com/view/commodity/forespider.html

【入口网址】

https://bj.58.com/xiaoqu/?PGTID=0d000000-0000-0ba1-7883-439f3be19550&ClickID=1

【采集内容】

采集房屋的类型、小区名、平均单价、竣工时间、地址、介绍、所属区、所属城市等。

图片

【采集效果】

图片

l思路分析

图片

l配置步骤

1.新建采集任务

选择【采集配置】,点击任务列表右上方【+】号可新建采集任务,将采集入口地址填写在【采集地址】框中,【任务名称】自定义即可,点击下一步。

图片

2.获取各区链接

①点击右上角采集预览,观察各区链接地址规律。

图片

其规律为:https://+字母(城市首字母)+.58.com/xiaoqu/+数字+/

②使用地址过滤的方法,将字母链接过滤,\c表示字母串,\d表示数字串。

图片

③观察发现还有其他链接,如“北京周边”,使用标题过滤的方法将其过滤掉。

图片

3.获取各房龄链接

①新建模板02,在其下新建一个链接抽取。

图片

②将模版01的链接抽取,关联至模版02:

图片

③采集预览,并观察房龄链接的规律:

图片

发现其规律为:https://+字母(城市首拼音)+.58.com/xiaoqu/+数字+/f+数字+/

④使用地址过滤的方法,将词语链接过滤出来(\c表示字母串、\d表示数字串):

4.抽取房屋数据

①新建一个数据表单,具体步骤和字段属性如下所示:

图片

②新建模板03,在该模板下新建一个数据抽取。

图片

③将模板02关联至模板03:

图片

④关联数据表单,如下图所示:

⑤在浏览器中,点击F12,打开开发者工具,如下图所示,使用指针,快速找到所需数据在源码中的位置:

图片

图片

 ⑥根据数据结构,使用脚本抽取数据,具体如下:

var str=DOM.GetSource().ToStr();
var a=DOM.FindClass("list-cell","div").child;
record re;
for(i=0;i<25;i++){
	re.id=MD5(URL.urlname)+i;
	re.type_="二手房";
	re.name_=DOM.GetTextAll(a.child.next.child);
	re.addr=DOM.GetTextAll(a.child.next.child.next);
	re.text=DOM.GetTextAll(a.child.next.child.next.next);
	re.price=DOM.GetTextAll(a.child.next.next.child);
	re.year_=DOM.GetTextAll(a.child.next.child.next).Left("竣工");
	re.qu=DOM.GetTextAll(a.child.next.child.next).Middle("竣工 ","-");
	re.city="鹤岗";
	re.sj=URL.title;
	a=a.next;
	RESULT.AddRec(re,this.schemaid);
}

⑦采集预览,如下图所示:

图片

 配置好模板以后就可以采集数据了,数据采集教程请参考:

http://www.forenose.com/view/help/course/spider/55.html?cId=31&type=1&dId=85

*本教程仅供学习交流,严禁用于商业用途!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值