Hawk教程- 快速教程

快速教程

本文给不想看详细教程的同学使用,仔细阅读,可以让你战斗力爆棚:

1.界面和交互

1.1.主工作区

启动后,在欢迎页面有三个tab页: 新建任务,任务市场和参数设置。欢迎页面非常重要,能够新建任务,或者浏览相关文档和帮助。

front.gif
  1. 新建任务:双击图标即可新建和加载已有任务
  2. 点击tab菜单【文件】可加载,保存任务,任务为xml文件。
  3. 下侧是【数据管理】,空白处右键可新建连接,连接名上右键可配置,支持本地文件(xls,txt,json),数据库(mongodb,sqlite)。数据库需要连接后才能使用,可勾选【自动连接】.

1.2.状态区

在Hawk主界面右侧是当前的状态,包括三个区域:

  • 已加载任务
  • 数据管理:可显示生成的或从文件中导出的表
  • 工作线程视图:正在执行的任务都会显示在这里
  1. 软件右下角对应的是【系统状态视图】,左右侧分别是已加载的任务和数据集。
    左键查看,右键配置,空白处右键批量管理。 下面的图标可用于删除,拷贝,保存等功能,把任务或数据集拖到图标上试试!
  2. 【网页采集器】用于配置单个网页的抓取规则,【数据清洗】用于打造清洗流程,并调用前者。 复杂任务会创建多个清洗并互相调用。

2.网页采集器

网页采集器 模拟了浏览器的设计,填入网址,点击刷新,即可获取对应地址的html源码。

认识到网页是一棵树(DOM)后,每个XPath对应一个属性,即可从网页上获取单个或多个文档。网页采集器的目的就是更快地通过手工或自动配置找到最优XPath。

2.1.工作模式

使用采集器,首先要按照抓取的目标,选择合适的工作模式:

  • 多文档: 会输出多份文档,通常在网页的列表页中使用, 如二手房的列表页面,新闻的列表页
  • 单文档: 输出单份文档,一般在网页的详情页中使用,如京东的订单页,新闻
  • 不进行转换: 直接输出网页源代码,放置于Content列中

注意:

  • 一个复杂的页面可能包含多个列表和详情,因此模式的选择主要取决于要抓取的数据是什么
  • 当在 多文档或 单文档模式,且属性数量为0时,也和 不进行转换行为一致

2.2.基本操作

  • 左侧的区域,显示了html源码和浏览器视图(但不能执行js),可通过上侧tab页切换。
  • 右侧是配置区域,可对关键字进行搜索,并对所有的属性进行管理。
  • 点击【提取测试】,可预览检查配置结果。

在多文档模式下,通常直接点击右上角的手气不错,在弹出的结果下选择所需数据,可配置其名称和XPath。点击确定即可配置完毕。即可自动获取绝大多数网页的目标内容。

[图片上传失败...(image-39f458-1559958071956)]

可手工填入搜索字符,即可在网页上快速定位元素和XPath,可在多个结果间快速切换,找到所需数据后,输入属性名称后手工添加属性。

2.3.高级功能

  1. 点击【Http请求详情】,可修改网页编码,代理,cookie和请求方式等,网页出现乱码可用
  2. 若希望自动登录,或获取动态页面(ajax)的真实地址,填入搜索字符,点击【自动嗅探】,在弹出的浏览器中翻到对应的关键字,Hawk就能自动捕捉真实请求
  3. 超级模式下,Hawk会将源码中的js,html,json都转成html,从而使用手气不错, 更通用但性能较差
  4. 填写【共享源】,本采集器同步共享源的【Http请求详情】,避免重复设置cookie代理等。
  5. 详情页(单文档模式)也可以手气不错(Hawk3新功能),搜索所需字段,不需要添加到属性列表,点击手气不错试试!
  6. 网页地址也可以是本地文件路径,如D:\target.html, 用其他方法保存网页后,再通过Hawk分析网页内容

[图片上传失败...(image-2f8a47-1559958071956)]

3.数据清洗

数据清洗可以通过组合多个不同的子模块,生成多样的功能,通过拖拽构造出一个工作流,它能够产生一个有限或无限的文档序列。比如下面:

image_1auq4oooc1m8m9tc02sjv1j4o9.png-71.6kB
etl.gif

3.1.基本操作

  • 左侧是所有模块列表,分为生成,转换,过滤和执行四种类型,可通过名称和拼音首字母快速检索。顺序组合可构成复杂任务。
  • 右侧是数据预览,可将左侧选中的模块拖入到右侧对应列上。 双击每个列上面的模块对其配置。将鼠标停靠字段上可查看使用介绍
  • 预览时,处理是串行的,数据不会被写入,有缓存,调试所见即所得。 只有在执行模式下才会并行快速执行。
  • 执行器可看做带有副作用(如写入文件)的转换器,只有在执行时才会运行
  • 生成器通常位于任务开头,可从文本,文件,数据库读取数据。生成器也能位于流的中间,通过多种模式与已有数据流组合
  • 下方菜单栏可点击刷新,前后单步,可通过采样量来修改预览的数据量。配置完毕无误后,左侧面板点击执行即可。
  • 很多问题来自于模块顺序不对,任何步骤错误,会导致连锁的问题,因此有必要使用单步调试,在调试到某步时,拖入的模块会插入到所在位置。

3.2.高级功能和技巧

  1. 输入列一般不用配置,需要时可下拉选择,也可手工输入文本。列名不要为纯数字,否则无法正常显示。
  2. 关于Python转换器:最后一行必须是可求值的表达式。例如有两列a,b,转换器输出列为c,表达式为a+b,则c列内容就是a+b。但表达式不能写c=a+b; Python是强类型语言,输入的数据可能是字符串或数字,因此必要时需要做类型转换;通过填写库路径,可让转换器调用第三方模块。
  3. 可在任务的各个位置拖入多个执行器(如【写入数据表】),它保存的是当前状态的数据。
  4. 子任务:任务可互相调用,功能非常强大,可用于处理多次跳转,详情页还包含列表的问题,比较复杂,需参考相关文档。

3.3.对配置的约定

  • 具体数值,直接填入配置框即可
  • 涉及到输入多个列名,多个分隔符等,都默认用空格分割,例如a b c
  • 当希望从本数据清洗中读取其他列的数据到本参数,使用方括号表达式,例如[col]
  • 当希望从全局配置中读取特定字段时,使用大括号表达式,例如{YOUR_CONFIG}
  • 希望将多个列的数据合并作为参数时,可先使用合并多列,再使用对应的表达式
  • 配置子任务的模块范围时:1:100表示从1到100, 2:-2表示从第2个模块到倒数第二个模块,可参考Python的slice写法
  • 配置子任务的字段映射时,可以用a:b c:d表示a列映射到b列,以此类推。

4.一些忠告

  1. Hawk除了做爬虫,还能做数据清洗,甚至批量执行命令,需要你来挖掘。
  2. Hawk对代理的支持不够(免费的就知足吧),避免过度抓取导致屏蔽。
  3. 记得经常保存任务,尽量将数据写入到数据库而非表里,否则程序可能崩溃难以挽回。

5.如何提问

Hawk是个免费的系统,因此没有客服mm(谁请得起,设计者也不够帅),因此好的问题能极大地提升解决问题的速度。请按照如下方式描述你的问题:

  • 抓取的网站地址,要抓取什么内容,在页面的什么位置,是什么范围。
  • 如果能提供你的工程文件,可在附录中给出,这能最大程度解决问题。
  • 如果是界面出现异常,请提供在什么环境下,点击什么按钮,报出什么异常,并发送所执行文件夹的log.dat日志文件作为附件。
  • 操作系统版本,.Net Framework环境(不是必须)

请尽量避免如下提问方式,这样的提问没有任何意义,作者也无法解决你的问题:

  • XXX网站怎么爬
  • XXX不会用,用不了
  • XXX出问题了

提问按照如下优先级进行:

  1. 推荐使用Github的issue,方便其他朋友查阅已有的问题。: https://github.com/ferventdesert/Hawk/issues
  2. 加入QQ群: 546750531(Hawk数据抓取交流)
  3. 给作者发邮件: buptzym@qq.com
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • GitHub文档镜像 欢迎使用Hawk 快速教程 主要组件介绍 核心功能:Hawk工程Hawk任务市场数据表和数据...
    desert2017阅读 1,514评论 0 1
  • GitHub文档镜像 欢迎使用Hawk 快速教程 主要组件介绍 核心功能:Hawk工程Hawk任务市场数据表和数据...
    desert2017阅读 2,479评论 0 0
  • GitHub文档镜像 欢迎使用Hawk 快速教程 主要组件介绍 核心功能:Hawk工程Hawk任务市场数据表和数据...
    desert2017阅读 1,274评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,422评论 1 45
  • 自己没有经历过的事,再痛苦也总是感觉风轻云淡,只有亲身经历了才明白刻骨铭心的感觉。
    曲晋嘉措阅读 196评论 0 0