目录
    采集房天下二手房信息
    视频教程:模板下载:

    一.场景简介

    1.场景描述:房天下最新二手房信息。

    2.入口网址:https://tj.esf.fang.com/

    3.采集内容:

    采集天津市房天下,二手房模块中的所有二手房的标题、价格、户型、面积、单价、朝向、楼层、装修、小区、区域、联系人、电话。

    二.思路分析

    |配置思路概览

    |配置步骤

    1. 新建采集任务

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

    2.翻页配置

    获取二手房页面中全部翻页链接,观察翻页链接规律发现:

    https://tj.esf.fang.com/house/i32/   第二页链接

    https://tj.esf.fang.com/house/i33/   第三页链接

    https://tj.esf.fang.com/house/i34/   第四页链接

    不难发现,翻页链接组成为:

    https://tj.esf.fang.com/house/i+页数+/

    ①故添加脚本如下:



    脚本文本如下所示:

    var foor = DOM.FindClass("shop_list shop_list_4","div",0 );//找到class为shop_list shop_list_4的节点
    var foora= DOM.FindName("dl",foora );//找到foor节点下名为dl的节点
    while(foora)//如果是foora节点
    {
    url link;//定义一个url
    var pro = DOM.FindName("dd",foora ); //找到foora节点下name为dd的节点
    link.urlname= url.StdUrl(URL.urlname,pro.child.child.href);//输出链接为pro节点的子节点的子节点的href
    link.title =pro.child.child.title;//输出链接标题为pro节点的子节点的子节点的title
    link.tmplid = 2;//关联模板2
    RESULT.AddLink(link);//结果输出一条链接
    foora = foora.next;//跳到foora节点的下一个节点,即下一个【dl】的节点
    }



    ②采集预览


    3.链接抽取

    ①新建模板二,并新建一个链接抽取,用来抽取每个翻页中所有二手房链接。

    ②列表链接需要脚本配置,操作如下图所示:

    ③查看页面源码,打开浏览器中该页面,点击F12,点击指针按钮,如下图所示,用指针按钮选中所需要的二手房链接,这时在右侧出现对应源码内容。说明链接在class为【shop_list shop_list_4】的节点下。

    经过观察发现,我们要找的是【shop_list shop_list_4】节点下每一个名为【dl】的节点对应一个二手房信息

    每个【dl】节点中的名为【dd】节点的子节点的子节点的href就是该二手房的链接。

    ⑤根据以上思路,具体配置脚本如下,配置好脚本后点击右上角【保存】。


    • 文本如下所示:

    var foor = DOM.FindClass("shop_list shop_list_4","div",0 );//找到class为shop_list shop_list_4的节点
    var foora= DOM.FindName("dl",foora );//找到foor节点下名为dl的节点
    while(foora)//如果是foora节点
    {
    url link;//定义一个url
    var pro = DOM.FindName("dd",foora );//找到foora节点下name为dd的节点
    link.urlname= url.StdUrl(URL.urlname,pro.child.child.href);//输出链接为pro节点的子节点的子节点的href
    link.title =pro.child.child.title;//输出链接标题为pro节点的子节点的子节点的title
    link.tmplid = 2;//关联模板2
    RESULT.AddLink(link);//结果输出一条链接
    foora = foora.next;//跳到foora节点的下一个节点,即下一个【dl】的节点
    }


    ⑥采集预览如下所示:

    2. 数据抽取

    ①链接抽取完成进入数据页,在原有模板基础上,右键选择【添加模板】,新添加的模板,右键【添加数据抽取】。

    ②此时要完成数据建表的工作:选择【数据建表】,点击【采集数据表结构】中的【+】,即可添加数据表,名称可以自定义,在此命名为房天下表单。

    ③数据表配置完成,选择【数据抽取】右侧数据属性配置,表单选择刚建立的“房天下”数据表,则可看到表单中的字段在左侧显示。

    ④点击脚本窗口,选择数据抽取脚本

    ⑤观察所需字段在页面中的位置,浏览器打开任意一个二手房详情页,点击F12,点击指针按钮,如下图所示,用指针按钮选中所需要的二手房字段信息,这时在右侧出现对应源码内容。

    name_字段:如下图所示可知,本字段在class为【floatl tit_details】的节点下。

    price字段:如下图所示可知,本字段在class为【trl-item price_esf  sty1】的节点下。

    type_字段:如下图所示可知,本字段在class为【tr-line clearfix】节点的子节点下。

    area字段:如下图所示可知,本字段在class为【trl-item1 w182】节点的子节点下。

    priceper字段:同理在class为【trl-item1 w132】节点的子节点下。

    orientation字段:同理在class为【trl-item1 w146】节点的子节点下。

    floor字段:虽然本字段在class为【trl-item1 w182】节点的子节点下,但是如下图所示,本页源码中不只一个trl-item1 w182,所以不能用同上述几个字段一样的方法来获取。

    如下图所示,通过页面源码观察可发现,本字段在class为【tab-cont-right】的节点的子节点的下一个的下一个的下一个节点中的class为【trl-item1 w182】的节点中。

    Renovate字段:由图可知,本字段在class为【tr-line clearfix】的节点下的class为【trl-item1 w132】的子节点中。

    Estate字段:由图可知,本字段在class为【tr-line】的节点下的class为【rcont】的节点中的所有文本。

    zone_字段:由图可知,本字段在class为【trl-item2 clearfix】的节点下的class为【rcont】的节点中的所有文本。

    name_字段:由图可知,本字段在class为【zf_jjname】的节点中的所有文本内容。

    Tel字段:由图可知,本字段为classid为【AgentTel】的字段中的value属性值。

    ⑥综上所述,数据抽取脚本如下所示:

    ⑦以上完成全部字段配置,效果预览如下:


    三.采集步骤

    模板配置完成,采集预览没有问题后,可以进行数据采集。

    ①首先要建立采集数据表:

    选择【数据建表】,点击【表单列表】中该模板的表单,在【关联数据表】中选择【创建】,表名称自定义,这里命名为fangtianxia(注意命名不能用数字和特殊符号),点击【确定】。

    创建完成,勾选数据表。

    ②选择【数据采集】,勾选任务名称,点击【开始采集】,则正式开始采集。

    ③可以在【数据浏览】中,选择数据表查看采集数据,并可以导出数据。


    四.课后回顾

    FindClass(class名,标签类型,开始查找结点):当符合条件的class名称唯一时,使用class名来查找结点。

    FindName(标签名,开始查找结点):当查找范围内,符合条件的数据标签唯一时,可以使用标签名称查找标签结点。

    GetTextAll(需要获取文本的结点,使用的字符编码):获取该html标签节点及所有子节点的可见文本。

    Child:孩子频道节点。

    FindId(idVal):通过标签的ID属性值查找标签节点,其中idVal表示待查找标签ID属性值。