Hawk 1.1 快速入门(链家二手房)
链家的同学请原谅我,但你们的网站做的真是不错。
1. 设计网页采集器
我们以爬取链家二手房为例,介绍网页采集器的使用。首先双击图标,加载采集器:

在最上方的地址栏中,输入要采集的目标网址,本次是http://bj.lianjia.com/ershoufang/。并点击刷新网页。此时,下方展示的是获取的html文本。原始网站页面如下:
由于软件不知道到底要获取哪些内容,因此需要手工给定几个关键字, 让Hawk搜索关键字, 并获取位置。

以上述页面为例,通过检索820万和51789(单价,每次采集时都会有所不同),我们就能通过DOM树的路径,找出整个房源列表的根节点。
下面是实际步骤

由于要抓取列表,所以读取模式选择List。 填入搜索字符700, 发现能够成功获取XPath, 编写属性为“总价” ,点击添加字段,即可添加一个属性。类似地,再填入30535,设置属性名称为“单价”,即可添加另外一个属性。
如果发现有错误,可点击编辑集合, 对属性进行删除,修改和排序。
你可以类似的将所有要抓取的特征字段添加进去,或是直接点击手气不错,系统会根据目前的属性,推测其他属性:

属性的名称是自动推断的,如果不满意,可以修改列表第一列的属性名, 在对应的列中敲键盘回车提交修改。之后系统就会自动将这些属性添加到属性列表中。
工作过程中,可点击提取测试 ,随时查看采集器目前的能够抓取的数据内容。这样,一个链家二手房的网页采集器即可完成。可属性管理器的上方,可以修改采集器的模块名称,这样就方便数据清洗 模块调用该采集器。
2. 设计数据清洗 流程
1. 构造url列表
在上一节介绍了如何实现一个页面的采集,但如何采集所有二手房数据呢? 这涉及到翻页。

还是以链家为例,翻页时,我们会看到页面是这样变换的:
http://bj.lianjia.com/ershoufang/pg2/
http://bj.lianjia.com/ershoufang/pg3/
…
因此,需要构造一串上面的url. 聪明的你肯定会想到, 应当先生成一组序列, 从1到100(假设我们只抓取前100页)。
- 双击数据清洗ETL左侧的搜索栏中搜索生成区间数, 将该模块拖到右侧上方的栏目中:

在右侧栏目中双击生成区间数,可弹出设置窗口, 为该列起名字(id), 最大值填写为100,生成模式默认为Append:
为什么只显示了前20个? 这是程序的虚拟化机制, 并没有加载全部的数据,可在ETL属性的调试栏目中,修改采样量(默认为20)。将数字转换为url, 熟悉C#的读者,可以想到string.format, 或者python的%符号:搜索合并多列,并将其拖拽到刚才生成的id列, 编写format为下图的格式,即可将原先的数值列变换为一组url

(如果需要多个列合并为一个列, 则在“其他项” 栏目中填写其他列的列名,用空格分割, 并在format中用{1},{2}..等表示)
(由于设计的问题,数据查看器的宽度不超过150像素,因此对长文本显示不全,可以在右侧属性对话框点击查看样例, 弹出的编辑器可支持拷贝数据和修改列宽。
3. 调用网页采集器
生成这串URL之后,我们即可将刚才已经完成的网页采集器与这串url进行合并。
拖拽从爬虫转换到当前的url,双击该模块:将刚才的网页采集器的名称, 填入爬虫选择 栏目中。
(不少朋友在此处出现问题,需要在从爬虫选择模块中,填写你配置的网页采集器名称,如果没有修改,则默认就是网页采集器)
之后,系统就会转换出爬取的前20条数据:

可以看到, 数据中“属性3” 列包含html转义符,
拖拽html字符转义,到属性3列,即可自动转换所有转义符。

如果要修改列名,在最上方的列名上直接修改, 点击回车即可修改名字。
where(面积)列中包含数字,想把数字提取出来,可以将提取数字模块拖拽到该列上,所有数字即可提取出来。
类似地,可以拖拽字符分割或正则分割 到某一列,从而分割文本和替换文本。此处不再赘述。
有一些列为空,可以拖拽空对象过滤器 到该列,那么该列为空的话会自动过滤这一行数据。
4. 保存和导出数据
需要保存数据时,可以选择写入文件,或者是临时存储(本软件的数据管理器),或是数据库。因此可以将“执行” 模块, 拖入清洗链的后端:
拖写入数据表到任意一列, 并填入新建表名(如链家二手房)

下图是这次操作的所有子模块列表:

之后,即可对整个过程进行操作:
选择串行模式或并行模式, 并行模式使用线程池, 可设定最多同时执行的线程数(最好不要超过100)。推荐使用并行模式,

点击执行按钮,即可在任务管理视图中采集数据。

之后,在数据管理的数据表链家二手房上点击右键, 选择另存为, 导出到Excel,Json等,即可将原始数据导出到外部文件中。

类似的, 你可以在清洗流程中拖入执行器,则保存的是中间过程,也可以在结尾拖入多个执行器,这样就能同时写入数据库或文件, 从而获得了极大的灵活性。
5. 保存任务
在右下角的算法视图中的任意模块上点击右键,保存任务,即可在任务视图中保存新任务(任务名称与当前模块名字一致),下次可直接加载即可。如果存在同名任务, 则会对原有任务进行覆盖。
在算法视图的空白处,点击保存所有模块,会批量保存所有的任务。

你可以将一批任务,保存为一个工程文件(xml),并在之后将其加载和分发。
Hawk 1.1 快速入门(链家二手房)的更多相关文章
- python3 爬虫教学之爬取链家二手房(最下面源码) //以更新源码
前言 作为一只小白,刚进入Python爬虫领域,今天尝试一下爬取链家的二手房,之前已经爬取了房天下的了,看看链家有什么不同,马上开始. 一.分析观察爬取网站结构 这里以广州链家二手房为例:http:/ ...
- Hawk 1.2 快速入门2 (大众点评18万美食数据)
本文将讲解通过本软件,获取大众点评的所有美食数据,可选择任一城市,也可以很方便地修改成获取其他生活门类信息的爬虫. 本文将省略原理,一步步地介绍如何在20分钟内完成爬虫的设计,基本不需要编程,还能自动 ...
- python爬取链家二手房信息,确认过眼神我是买不起的人
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- 上海二手房8月排名:链家、悟空找房、中原、太平洋、我爱我家、易居、房天下、iwjw、房多多、房好多、q房网、、、
房产网站总结 链家: 悟空找房: 中原: 太平洋: 我爱我家: 易居: 房天下: iwjw:有较多二手房信息 链家称王 房多多领跑电商平台 近日,云房数据公布了8月上海房产中介成交数据,从排行榜来看, ...
- Python爬虫入门教程 23-100 石家庄链家租房数据抓取
1. 写在前面 作为一个活跃在京津冀地区的开发者,要闲着没事就看看石家庄这个国际化大都市的一些数据,这篇博客爬取了链家网的租房信息,爬取到的数据在后面的博客中可以作为一些数据分析的素材. 我们需要爬取 ...
- 43.scrapy爬取链家网站二手房信息-1
首先分析:目的:采集链家网站二手房数据1.先分析一下二手房主界面信息,显示情况如下: url = https://gz.lianjia.com/ershoufang/pg1/显示总数据量为27589套 ...
- Python爬虫入门教程石家庄链家租房数据抓取
1. 写在前面 这篇博客爬取了链家网的租房信息,爬取到的数据在后面的博客中可以作为一些数据分析的素材.我们需要爬取的网址为:https://sjz.lianjia.com/zufang/ 2. 分析网 ...
- python爬虫:爬取链家深圳全部二手房的详细信息
1.问题描述: 爬取链家深圳全部二手房的详细信息,并将爬取的数据存储到CSV文件中 2.思路分析: (1)目标网址:https://sz.lianjia.com/ershoufang/ (2)代码结构 ...
- python爬虫:利用BeautifulSoup爬取链家深圳二手房首页的详细信息
1.问题描述: 爬取链家深圳二手房的详细信息,并将爬取的数据存储到Excel表 2.思路分析: 发送请求--获取数据--解析数据--存储数据 1.目标网址:https://sz.lianjia.com ...
随机推荐
- .NET Core系列 : 2 、project.json 这葫芦里卖的什么药
.NET Core系列 : 1..NET Core 环境搭建和命令行CLI入门 介绍了.NET Core环境,本文介绍.NET Core中最重要的一个配置文件project.json的相关内容.我们可 ...
- 如何选择PHP框架?
PHP是世界上最受欢迎的编程语言之—.最近发布的PHP7令这种服务器的编程语言比以前变得更好,更稳定了. PHP被广泛应用于重大的项目.例如Facebook就是使用PHP来维护和创建它们的内部系统的. ...
- 深入理解BFC
定义 在解释BFC之前,先说一下文档流.我们常说的文档流其实分为定位流.浮动流和普通流三种.而普通流其实就是指BFC中的FC.FC是formatting context的首字母缩写,直译过来是格式化上 ...
- fiddler发送post请求
1.指定为 post 请求,输入 url Content-Type: application/x-www-form-urlencoded;charset=utf-8 request body中的参数格 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- ASP.NET中画图形验证码
context.Response.ContentType = "image/jpeg"; //生成随机的中文验证码 string yzm = "人口手大小多少上中下男女天 ...
- BPM配置故事之案例4-子表
公司渐渐对采购管理重视起来了,新招聘了采购主管老李,老李对现有的申请表很不满意,要求将申请物资和申请原因改成物资明细表 物资明细表 小明只好继续致电大毛-- 大毛:把申请物资和申请原因删掉,新增一个数 ...
- DevExpress - 使用 GaugeControl 标尺组件制作抽奖程序 附源码
前不久,公司举办了15周年庆,其中添加了一个抽奖环节,要从在读学员中随机抽取幸运学员,当然,这个任务就分到了我这里. 最后的效果如下,启动有个欢迎页面,数据是来自Excel的,点击开始则上面的学号及姓 ...
- Ubuntu下配置apache开启https
一.HTTPS简述随着网络的日常,信息安全越来越重要,传统的网站都是http协议明文传输,而HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议,比http协议安全. 那ht ...
- Windows下Nginx配置SSL实现Https访问(包含证书生成)
Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...