网页抓取利器hawk使用心得
优采云 发布时间: 2020-08-24 17:43网页抓取利器hawk使用心得
(1)抓取目的
现在网站有大量数据,但网站本身并不提供api接口,如果要批量获得这种页面数据,必须通过网页抓取方法实现。
比如某房产网站的二手房数据,在页面上太整齐的展示,因此可以通过剖析网页的html源码,找到单价、单价、位置、户型等数据,并最终实现批量抓取。
(2)抓取原理
1)首先要获取网页的html源码,这个并不难,在浏览器里右击菜单里选择“查看网页源代码”就能看见html源码,页面上能看到的文字基本在都在html源码里。
2)得到html源码后,就须要定位到各个数据的位置,比如“总价”,如下图所示:
可以见到“560”在html里能找到。
同时可以得到“总价”这个数组的xpath:
/html/body/div[4]/div[1]/ul/li[8]/div[1]/div[6]/div[1]/span
我们可以把html看成是一个标签树,xpath就是在标签树的找寻路径。
依此可以得到“单价”、“户型”等数组的xpath,也就可以获取1条发布信息的数据。
3)得到1条信息的数据后,一个页面一般会显示二三十条信息,可以发觉这种信息的格式都是一致的,如下图所示:
因此可以发觉这种信息都在
/html/body/div[4]/div[1]/ul/
路径下
第1条就是/html/body/div[4]/div[1]/ul/li[1]
第2条就是/html/body/div[4]/div[1]/ul/li[2]
……
基于此,通过基础path+数组相对path就可以得到每位数组的绝对path,然后可以编程实现单个页面的抓取功能了。
4)得到单个页面的数据后,就可以实现多页面抓取,假如网站有100页数据,通过观察网站地址url可以发觉,一般第二页就是 “xxx/page2”,第一百页就是“xxx/page100”,因此这个也是挺有规律的,修改下url就可以实现多页面抓取了。
(3)hawk抓取
由于网页抓取这么常见,可以在网上搜到大量的抓取软件,并不一定须要自己再开发一个抓取软件(写一个抓取软件不难,写一个通用性强且好用的难),hawk就是一个相当好用的抓取软件。
hawk的介绍页面:
关于hawk的详尽介绍,可以看其主页,这里说一下个人使用心得:
1)hawk收录”网页采集器”和”数据清洗”两个模块,网页采集用于定位各个数组的xpath,数据清洗用于抓取数据,并对各个数组做一定的处理,以及导入数据。
2)网页采集器模块挺好用,输入url得到网页html源码后,在“搜索字符”里输入比较典型的搜索文本,比如“农光南路双朝北两居室”后,hawk会在html里搜索这个字符串,获取xpath。
“添加数组”后,再点击“手气不错”会手动搜索出每条信息里收录的所有数组值,这个功能真的太强悍,有点人工智能的疗效了,网页采集工作一次完成。
3)数据清洗模块也挺好用,个人用了其中4个模块
1 生成区间数2 合并多列 3 从爬虫转换4 写入数据表
具体操作可观看主页提供的视频教程,其中第三步“从爬虫转换”要设置网页采集器的名称(视频少了这个步骤),最后导入到Excel表,得到想要的数据。
hawk这个软件功能太全,而且界面操作便捷,支持好多的数据模块,推荐使用。