l 采集网站
【场景描述】采集房天下最新二手房信息。
【入口网址】https://tj.esf.fang.com/
【采集内容】
采集天津市房天下,二手房模块中的所有二手房的标题、价格、户型、面积、单价、朝向、楼层、装修、小区、区域、联系人、电话。
l 思路分析
配置思路概览:
l 配置步骤
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+页数+/
①故添加脚本如下:
②采集预览
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 = 3;//关联模板2
RESULT.AddLink(link);//结果输出一条链接
foora = foora.next;//跳到foora节点的下一个节点,即下一个【class=listtxt】的节点
}
⑥采集预览如下所示:
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属性值。
⑥综上所述,数据抽取脚本如下所示:
脚本文本:
var floor=DOM.FindClass("tab-cont-right","div");
var floor1=floor.child.next.next.next;
var floor2=DOM.FindClass("tr-line","div");
var floor3=DOM.FindClass("trl-item2 clearfix","div").next;
var floor4=DOM.FindClass("zf_chat_line","a");
record re;
re.id = MD5(ur);
re.title = DOM.GetTextAll(DOM.FindClass("floatl tit_details","h1"));
re.price=DOM.GetTextAll(DOM.FindClass("trl-item price_esf sty1","div",0));
re.type_=DOM.GetTextAll(DOM.FindClass("tr-line clearfix","div",0).child);
re.area=DOM.GetTextAll(DOM.FindClass("trl-item1 w182","div").child);
re.priceper=DOM.GetTextAll(DOM.FindClass("trl-item1 w132","div").child);
re.orientation=DOM.GetTextAll(DOM.FindClass("trl-item1 w146","div").child);
re.floor=DOM.GetTextAll(DOM.FindClass("trl-item1 w182","div",floor1));
re.renovate=DOM.GetTextAll(DOM.FindClass("trl-item1 w132","div",floor1).child);
re.estate=DOM.GetTextAll(DOM.FindClass("rcont","div",floor2));
re.zone_=DOM.GetTextAll(DOM.FindClass("rcont","div",floor3));
re.name_=DOM.GetTextAll(DOM.FindClass("zf_jjname","span"));
re.tel=DOM.FindId("AgentTel").value;
RESULT.AddRec(re,this.schemaid);
⑦以上完成全部字段配置,效果预览如下:
l 采集步骤
模板配置完成,采集预览没有问题后,可以进行数据采集。
①首先要建立采集数据表:
选择【数据建表】,点击【表单列表】中该模板的表单,在【关联数据表】中选择【创建】,表名称自定义,这里命名为fangtianxia(注意命名不能用数字和特殊符号),点击【确定】。
创建完成,勾选数据表。
②选择【数据采集】,勾选任务名称,点击【开始采集】,则正式开始采集。
③可以在【数据浏览】中,选择数据表查看采集数据,并可以导出数据。
l 课后回顾
FindClass(class名,标签类型,开始查找结点):当符合条件的class名称唯一时,使用class名来查找结点。
FindName(标签名,开始查找结点):当查找范围内,符合条件的数据标签唯一时,可以使用标签名称查找标签结点。
GetTextAll(需要获取文本的结点,使用的字符编码):获取该html标签节点及所有子节点的可见文本。
Child:孩子频道节点。
FindId(idVal):通过标签的ID属性值查找标签节点,其中idVal表示待查找标签ID属性值。
在操作中如有问题,可进入前嗅官网(http://www.forenose.com),咨询技术支持。
前嗅免费提供一对一技术支持服务。
相关推荐
Python爬虫实战:数据采集、处理与分析Python爬虫实战:数据采集、处理与分析Python爬虫实战:数据采集、处理与分析Python爬虫实战:数据采集、处理与分析Python爬虫实战:数据采集、处理与分析Python爬虫实战:数据...
python爬虫Python爬虫实战:数据采集、处理与分析Python爬虫实战:数据采集、处理与分析Python爬虫实战:数据采集、处理与分析Python爬虫实战:数据采集、处理与分析Python爬虫实战:数据采集、处理与分析Python爬虫...
python爬虫:Python 爬虫知识大全; python爬虫:Python 爬虫知识大全; python爬虫:Python 爬虫知识大全; python爬虫:Python 爬虫知识大全; python爬虫:Python 爬虫知识大全; python爬虫:Python 爬虫知识...
在日常工作和学习中可能会遇到需要用Python或其他形式的爬虫获取二手房信息的需求,但又会苦于没有合适的代码,本项目为各位提供一个可直接上手的python爬虫代码,下载即可运行,可根据年份、日期、地区、价格等信息...
Python网络爬虫是一种用于自动化网页数据抓取的技术,它能够高效地从互联网上获取大量信息。本套教学资料深入解析了Python爬虫的核心技术、Scrapy框架以及分布式爬虫的实现,旨在帮助学习者掌握这一领域的核心技能。...
基于Python网络爬虫的二手房数据采集及可视化分析项目源码+使用教程+爬虫+报告PPT.zip已获导师认可并高分通过的毕业设计项目,代码完整,该资源代码都是经过测试运行成功,没有任何问题功能完整的情况下才上传的,...
python毕业设计网络爬虫的二手房源数据采集及可视化分析源码+PPT文档.zip该项目是个人高分毕业设计项目源码,已获导师指导认可通过,98分的评审分。都经过严格调试,确保可以运行,放心下载使用。 python毕业设计...
本文将详细讲解与“房天下新房爬虫excel表格经纬度坐标xy名称价格”相关的知识点,主要涉及GIS(地理信息系统)、WGS84坐标系统、新房爬虫技术以及房价信息的处理。 首先,GIS(地理信息系统)是一种集成了地图、...
在本毕业设计项目中,我们将深入探讨如何使用Python编程语言构建一个网络爬虫来收集二手房源数据,并通过数据可视化技术进行深入的分析和呈现。这个项目涵盖了Python爬虫开发的关键技术和数据分析的重要步骤,旨在...
利用python编写了一个爬虫代码,爬取房天下商品房信息,可以更改链接地址,爬取其他信息
Python爬虫练习:bilibili用户信息爬取、下载工具、房天下新房二手房爬虫、简书全站文章爬取等.zip 申明 个人的一些python 爬虫练习 仅限于学习交流 目录 Scrapy-Redis 房天下新房二手房redis分布式爬虫 Scrapy ...
六、Deep Web爬虫:讲解Deep Web爬虫的基本概念、Deep Web爬虫的原理、Deep Web爬虫的应用场景等。 七、微博信息采集:讲解微博信息采集技术的基本概念、微博爬虫的原理、微博爬虫的应用场景等。 八、Web信息提取...
在本项目中,我们主要探讨的是如何利用爬虫技术来获取58同城网站上的二手房信息。爬虫是一种自动化地从互联网上抓取信息的技术,它能够帮助我们批量收集和处理大量的网页数据。58同城作为中国知名的分类信息网站,其...
### 基于Python Scrapy爬虫框架实现的链家二手房数据爬取系统的设计与实现 #### 一、设计背景及概括 自21世纪以来,互联网技术的飞速发展使得人们的生活方式发生了翻天覆地的变化。在房地产领域,随着城镇化进程的...
标题 "fangtianxia_获取房天下二手房信息的Python代码_" 暗示这是一个关于使用Python编程语言从房天下网站抓取二手房数据的教程或代码示例。房天下是中国知名的房地产信息平台,提供了大量的房源信息,包括新房、...