Hawk教程-简书版

Hawk教程- 快速教程

2019-06-08  本文已影响0人  desert2017

快速教程

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

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.工作模式

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

注意:

2.2.基本操作

在多文档模式下,通常直接点击右上角的手气不错,在弹出的结果下选择所需数据,可配置其名称和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.对配置的约定

4.一些忠告

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

5.如何提问

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

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

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

  1. 推荐使用Github的issue,方便其他朋友查阅已有的问题。: https://github.com/ferventdesert/Hawk/issues
  2. 加入QQ群: 546750531(Hawk数据抓取交流)
  3. 给作者发邮件: buptzym@qq.com
上一篇 下一篇

猜你喜欢

热点阅读