网页抓取神器hawk使用心得
来源:互联网 发布:ubuntu启动脚本编写 编辑:程序博客网 时间:2024/05/21 10:26
(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的介绍页面:
https://github.com/ferventdesert/Hawk
关于hawk的详细介绍,可以看其主页,这里说一下个人使用心得:
1)hawk包含”网页采集器”和”数据清洗”两个模块,网页采集用于定位各个字段的xpath,数据清洗用于抓取数据,并对各个字段做一定的处理,以及导出数据。
2)网页采集器模块很好用,输入url得到网页html源码后,在“搜索字符”里输入比较典型的搜索文本,比如“农光南路双朝南两居室”后,hawk会在html里搜索这个字符串,获取xpath。
“添加字段”后,再点击“手气不错”会自动搜索出每条信息里包含的所有字段值,这个功能真的很强大,有点人工智能的效果了,网页采集工作一次完成。
3)数据清洗模块也很好用,个人用了其中4个模块
1 生成区间数 2 合并多列 3 从爬虫转换 4 写入数据表
具体操作可观看主页提供的视频教程,其中第三步“从爬虫转换”要设置网页采集器的名称(视频少了这个步骤),最后导出到Excel表,得到想要的数据。
hawk这个软件功能很全,而且界面操作方便,支持很多的数据模块,推荐使用。
- 网页抓取神器hawk使用心得
- 网页抓取神器scrapy的安装搭建
- 天王神器PowerPro使用心得
- 使用wget抓取网页
- 使用python抓取网页
- 使用lxml抓取网页
- 使用wget抓取网页
- Hawk-数据抓取工具:简明教程
- 使用Python抓取网页信息
- python使用urllib2抓取网页
- 使用Python抓取网页信息
- 使用Snoopy抓取网页内容
- 使用代理抓取网页数据
- 使用htmlparser抓取网页链接
- 使用Socket抓取网页源代码
- 使用Python工具抓取网页
- 使用HtmlAgilityPack抓取网页数据
- 使用Fiddler 抓取 网页https
- C/C++_三大排序
- 解决Maven Configuration Problem问题
- 第三章 3.5.3 指针和数组
- CentOS7 安装arm-linux-gdb-7.5
- 【PAT】(乙级)1004. 成绩排名 (20)
- 网页抓取神器hawk使用心得
- hdu 5806 NanoApe Loves Sequence Ⅱ 前缀和+尺取法
- (小案例)数组应用:实现学生管理系统
- java中String、List、set的一些常用方法
- sql排序问题
- C#中Cookie的概述及应用
- hdu 5737【线段树+有序表+线段树小技巧+ 二分不要写错……】
- DojoX 评分 widget 实际效果
- struts2 配置文件模板