1. 主角出场:Hawk介绍
Hawk是沙漠之鹰开发的一款数据抓取和清洗工具,目前已经在Github开源。详细介绍可参考:http://www.cnblogs.com/buptzym/p/5454190.html,强烈建议先读这篇文章,该文介绍了详细原理和抓取链家二手房的攻略,以此为基础,才能较好的理解整个操作。
本文将讲解通过本软件,获取大众点评的所有美食数据,可选择任一城市,也可以很方便地修改成获取其他生活门类信息的爬虫。
本文将省略原理,一步步地介绍如何在20分钟内完成爬虫的设计,基本不需要编程,还能自动并行抓取。
看完这篇文章,你应该就能举一反三地抓取绝大多数网站的数据了。Hawk是一整套工具,它的能力取决于你的设计和思路。希望你会喜欢它。
详细过程视频可参考:http://v.qq.com/page/z/g/h/z01891n1rgh.html,值得注意的是,由于软件不断升级,因此细节和视频可能有所出入。
准备好了么?Let's do it!
2. 菜场买菜:编译和安装
编译可使用VS2015(推荐),否则可直接从网盘下载可执行程序:
http://pan.baidu.com/s/1c8zBiQ 密码:4iy0
之后双击Hawk.exe,即可运行。
依赖环境要求.NET Framework 4.5, win7和以上版本。没有其他依赖项。
3. 做饭先生火:自动设置cookie:
我们先打开大众点评的美食列表页面:
http://www.dianping.com/search/category/2/10/g311
这是北京的"北京菜"列表,但你会注意到,只能抓取前50页数据(如箭头所示),是一种防爬虫策略,我们之后来破解它。
我们双击打开一个网页采集器:
之后在最上方的地址栏里填写地址:
但会发现远程服务器拒绝了请求,原因是大众点评认为Hawk是爬虫而不是浏览器。
没有关系,我们让Hawk来监控浏览器的行为,在右侧的自动嗅探窗口中,填写url过滤和内容筛选,之后点击开始。浏览器会自动打开该网页,程序后台自动记录了所有的行为,之后点击关闭按钮(切记点击关闭)。
(此处大概介绍原理:Hawk在点击开始之后,会自动成为代理,所有的浏览器请求都会经过Hawk,在输入特定的URL筛选前缀和关键字,则Hawk会自动拦截符合要求的Request,并将其详细信息记录下来,并最终模拟它)。
之后,我们点击右方的“高级设置”里,能够看到Hawk已经把这次访问的cookie和headers自动保存下来:
我们再次点击刷新网页,可以看到已经能成功获取网页内容:
完成这一步之后,我们就能够像普通网页那样免登陆抓取信息了。这也适合需要登录的各类网站。
4.洗菜切菜:获取门店列表
我们通过自动和手动两种方式来获取门店列表,你可以两种都试试。
4.1 全自动获取
直接点击手气不错即可,不需要其他操作: