爬一爬哪个操蛋的药品网站,建立药品库

阅读文本大概需要5分钟。

互联网医疗公司,有一个完整、完全、正确的药品库非常重要;今天来说一说小编在上一个东家为了建立一个自己的药品库是怎么做的。首先我们是一家小公司,但是我们有一个纽约敲钟的梦想,虽然就要闹得发不了工资、最终还闹上了劳动仲裁委,就是不说了,满满的都是泪,“宝宝,我没有用~~~”。

首先分析对手,目前国内做互联网医疗的公司非常多,但是做的还可以的就那么几家,而且做医药商城、药品比较齐全的主要有京东医药、360好药、阿里健康等,但是他们也不是最全的,药品最全的要数国家药监局

 

今天就来看看怎么使用JAVA把这个网站的数据爬下来,要爬数据,首先要先分析一下网站的结构。分析网站发现这个国家级的网站,身负华夏千千万万人生命的药品的网站,做的确实烂,不知道找了国内哪个大学的、还没毕业的研究生做了。并不想黑哪个大学或者那些研究生。打开谷歌浏览器的js调试器,发现代码中大量充斥debugger对象,是一个测试网站吗?

步骤一: 在药品列表页随便找一条药品数据查看代码

<a href="javascript:commitForECMA(callbackC,'content.jsp?tableId=63&amp;tableName=TABLE63&amp;tableView=药品注册补充申请备案情况公示&amp;Id=1214',null)">2.胆炎康胶囊 (贵州百灵企业集团制药股份有限公司CYZB0801888黔)</a>

 

步骤二: 继续分析点击一下任何一条药品数据

http://app1.sfda.gov.cn/datasearchcnda/face3/content.jsp?tableId=63&tableName=TABLE63&tableView=%D2%A9%C6%B7%D7%A2%B2%E1%B2%B9%B3%E4%C9%EA%C7%EB%B1%B8%B0%B8%C7%E9%BF%F6%B9%AB%CA%BE&Id=1213&MmEwMD=GBK-29dira8NcGmy70MjYEuX.g4LnWi1GvHrOnsfFiCvyQ88RHewUbaSGAiUTgUgq4YevKCVC8bQ9_NkyfOXyuK.obd1rHWx0w4F3O.LrNzVU4u07._EXZzoUlnc4n.0NrH0l3vOaSMEdonpH9Sjx5A2mk_ZJiRP7ZFIqhLxWBKZD35rIIbLjt85LnM8mxObiJQ9zjUmlIuqbvj5tPQLesVJWcdQhTtqztm4TDOx1ywoanmtLWFGYzIkfECO0IJkPatXMvKmGrUomdOU2YzBwFf0_R2GDJUAyT.7k53qL2VpCBTuDsSAgOBzWwKVXoFWm7b96ttDBw8SdPT9rw9ZTEJ1jUQpOyTHV5BaXxqKvej6InqgEoAgY0444vleOaf28sStAhm3XvTbgErp_Dx_hGGbjXEUKhOheptsDWTE35ZD2n3FevH

经过以上两个步骤分析等到如下结论

步骤一:

content.jsp?tableId=63&amp;tableName=TABLE63&amp;tableView=药品注册补充申请备案情况公示&amp;Id=1214

步骤二:

http://app1.sfda.gov.cn/datasearchcnda/face3/

把这两个拼起来并加以整理:

http://app1.sfda.gov.cn/datasearchcnda/face3/content.jsp?tableId=63&tableName=TABLE63&tableView=药品注册补充申请备案情况公示&Id=1214

这个链接放到浏览器访问数据就出来了,再继续分析一下这个链接有如下参数: tableId、tableName、tableView和Id

tableId、tableName、tableView这三个参数都有table,可以知道一定有存在什么关联。找啊找啊发现下图

所有的tableId、tableName、tableView这三个参数的值都在这个界面的所有链接里了;而Id参数,猜测是对应的药品的Id,来验证一下,这个链接是前面拼出来的

http://app1.sfda.gov.cn/datasearchcnda/face3/content.jsp?tableId=63&tableName=TABLE63&tableView=药品注册补充申请备案情况公示&Id=1214

把这个Id改成1215,你会发现惊奇的;数据果然出来了。

就可以大胆推测这个Id是药品的唯一主键,再大胆推测一下,是不是一个自增的Id,写一个循环从0到int类型的最大值就可以把某一种类型的药品的数据全部爬下来了。然后按照这些字段就可以把药品名称、规格、批准文号等爬下来了。

 

这个毕竟是国家级网站,这里代码就给出了,这里给大家点一下。要访问网站,首页就必须用到httpclient

<dependency>
   <groupId>org.apache.httpcomponents</groupId>
   <artifactId>httpclient</artifactId>
   <version>4.5.7</version>
</dependency>

分析网站知道返回的是HTML代码,这样的话需要解释HTML代码,这样就要使用到

<dependency>
   <groupId>org.jsoup</groupId>
   <artifactId>jsoup</artifactId>
   <version>1.11.3</version>
</dependency>

也可以使用(但是htmlparser已经很久没更新了,jsoup是新一代HTML解析器)

<dependency>
   <groupId>org.htmlparser</groupId>
   <artifactId>htmlparser</artifactId>
   <version>2.1</version>
</dependency>

推荐阅读

Spring Boot 最流行的 16 条实践

SSM框架的面试常见问题

【分布式】缓存穿透、缓存雪崩,缓存击穿解决方案

阿里P7给出的一份超详细 Spring Boot 知识清单

关注我每天进步一点点

你点的每个在看,我都认真当成了喜欢

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BUG弄潮儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值