[关闭]
@buptzym 2016-05-01T08:43:14.000000Z 字数 1191 阅读 847

Hawk 抓取安居客 说明书


1.软件需求

软件的全部源代码和使用说明在:
https://github.com/ferventdesert/Hawk

2.启动

双击应用文件夹的Hawk.exe,即可启动。
在左侧的模块列表中,找到安居客核心流程,双击加载。
QQ截图20160501160717.jpg-24.1kB
之后,在安居客核心流程的属性设置栏里,点击刷新结果,可查看程序是否能够正常地抓取数据:
QQ截图20160501160754.jpg-22.3kB
QQ截图20160501161007.jpg-131.1kB
如果一切正常,则可点击执行(参考上图),并行地抓取数据。并行线程建议100即可。

3.参数设置

考虑到在界面上设置参数并不方便,因此专门设计了python脚本,能够修改信息,修改完文件后再启动程序,方能生效。
详细的设置方法,都已经在注释中写清楚了。
建议每次抓取一个城市或几个城市,这种增量抓取的做法比较方便。

  1. # coding=utf-8
  2. #下面的代码是接口函数,无关
  3. def get(ar,index):
  4. l=len(ar);
  5. if index<0:
  6. return ar[l+index];
  7. else:
  8. return ar[index];
  9. unabled=[户型图存储方案,户型图存储,安居客户型列表,安居客评价,安居客楼盘详情,相册存储方案,安居客相册];
  10. for e in unabled:
  11. e.etls[0].Enabled=False
  12. #下面是可能需要修改的配置:
  13. ###################################################
  14. #是否要保存相册?不论是否保存,都会将相册的路径存入数据库中
  15. get(安居客相册.etls,-1).Enabled=True
  16. #是否要保存户型图?不论是否保存,都会将户型图的路径存入数据库中
  17. get(户型图存储.etls,-1).Enabled=True
  18. #要采集的城市,使用正则表达式,如果包含全部城市,则写为''
  19. get(安居客城市.etls,-1).Script='天津'
  20. #户型图的存储路径
  21. get(户型图存储方案.etls,-2).Format='E:\安居客图片\{0}\户型图\{1}_{2}_{3}.jpg'
  22. #相册的存储路径
  23. get(相册存储方案.etls,-2).Format='E:\安居客图片\{0}\相册\{1}_{2}_{3}.jpg'

4.注意事项

  1. 程序没有对失败的访问做处理,这意味着数据不能保证完全。但设计完全的抓取,代价太高了。通常10万次请求中,也只有个别几次失败,这种通常是能接受的。
  2. 数据库没有对重复保存做处理,可能在后期开发中,需要做去重处理。
  3. 脚本要符合Python语法,当脚本执行出错时,程序会在调试信息窗口中提示异常,但依然能正常运行。所以建议修改后仔细检查脚本文件。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注