莆田系医院清洗日记(科普小文)-阿里云开发者社区

开发者社区> 阿里云DataV> 正文

莆田系医院清洗日记(科普小文)

简介: 用高德接口清洗可疑莆田医院的数据

引子

一夜间,百度和莆田系的话题院占领了俺的朋友圈。

直到这几天我才幡然觉悟,从小的性病广告,到公交车站的整容广告,到各种一看就伪科学的网站广告,原来师出一派。

本人不善口诛笔伐和道德说教,但好歹也被医院坑过一次,花了800做了个其实应该免费的婚检,自此才知道『军』字打头的医院未必是个好鸟。

昨天当我在github上看到了这个项目: https://github.com/langhua9527/BlackheartedHospital, 心头一震, 原来码农也能为这件事做点什么。

github是一个分布式代码托管仓库,这么说有点装逼,简言之是大家可以在这里进行多人协作,比如我修改了一个片段,他修改了一个片段,github可以帮着做合并。

现在github已经被玩坏了,比如这个找医院的项目,至今有57个人参与其中,3000多个star()。

清洗数据

问题来了,目前只有500个野鸡医院的名字,你要取得这500个医院的电话、省份、 城市、地区、地址供研究,你会怎么做,是一个个去搜索吗?

500个可以手动,如果是5000个呢,每次找到网站并刷出来需要15s,复制黏贴需要3s, 5个字段需要15s,加起来一条记录需要30s,5000条数据需要你一刻不停地高效率干一天半。

码农就是暖男,暖男让你的工作更省心。

如果我们用手机打开百度地图或者高德地图,随手输入一个地址,上海交大、上海交通大学、东川路800号,或在上海的视图搜索交大、交通大学,基本上你能找得到这个地方。

虽然一个地址不是很标准,我们还是能找到标准的信息,有时候还能跳个小框出来,告诉你这个地方的联系电话是多少。

代码片段

如果我们打开chrome,然后打开控制台(windows用户按f12,mac用户 alt + command + r),然后点击network。

然后在搜索框搜索『上海交通大学』,打开控制台,你可以找到一条类似于这样的请求:

http://ditu.amap.com/service/poiInfo?query_type=TQUERY&city=330100&keywords=%E4%B8%8A%E6%B5%B7%E4%BA%A4%E9%80%9A%E5%A4%A7%E5%AD%A6&pagesize=20&pagenum=1&qii=true&cluster_state=5&need_utd=true&utd_sceneid=1000&div=PC1000&addr_poi_merge=true&is_classify=true&geoobj=119.917027%7C30.180823%7C120.390125%7C30.393979

image

这个url有一段比较关键

keywords=%E4%B8%8A%E6%B5%B7%E4%BA%A4%E9%80%9A%E5%A4%A7%E5%AD%A6

很多字符是不能存在于url中的,所以浏览器会自动转化,各种语言应该都有这种转化的办法,比如javascript提供了2个函数做转换,我们可以在console里对这堆乱码进行试验,我们用encodeURI函数把中文转乱码,又用decodeURI转换成中文:

image

因此,如果我们有一堆可疑医院的列表,一条条告诉程序,程序把刚才url中key后面的乱码用下面的函数处理替换,就可以开始搜集信息了。

encodeURI('你想要搜索的地址')

我们可以看看这个接口包含的信息:

image

随意下载

爬虫的细节就先略过了,如果调用太频繁,有时候会被高德封掉,最简单的方法可疑让任务排个队,每次完了休息一小会。

这份数据大家可以免费地使用,也提供了json和csv的格式可供下载,因为初始数据修改过, 目前还没有合并到主项目中。
https://github.com/zhouningyi/BlackheartedHospital

所有的数据都为网友采集,并不为准,大家可以利用互联网,开始进一步的调查。

谢谢每天我们用来导航的地图服务,利用这个,我们批量清洗出了可疑医院的详细信息。

可疑医院地图

对于这份数据,顺便做了一份简单的热力图,可以点击每个热点看详细信息:

http://hotu.co/hospital/

image
image

贴些sample:

image

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

官网链接