药监局国产非特备案数据的一些采集思路

前言

最近公司相关业务变动,需要采集药监的一些数据。在经过一段的时间的摸索后,顺利完成了需求。在这里,我会简单的分享个人在采集过程中的一些思考,如果能帮到大家就非常好了。

采集需求

采集地址:http://ftba.nmpa.gov.cn:8181/ftban/fw.jsp
采集数据项:非特备案产品的所有数据(列表&详情数据)
采集数量:?

采集分析

首先我们打开网址:http://ftba.nmpa.gov.cn:8181/ftban/fw.jsp 对数据进行分析
在这里插入图片描述
f12打开chrome调试控制台,发现有防止debugger脚本。
点开sources项,去掉js debugger控制。
在这里插入图片描述
随意做个翻页,看到xhr请求。
在这里插入图片描述
查看请求头
在这里插入图片描述
发现有6SQk6G2z,c1SoYK0a两个加密参数。继续调试,查看加密参数是如何生成的。
点开网络请求相关面板。
在这里插入图片描述
点击进入发送请求的js脚本内。我们可以看到请求由jQuery的ajax函数发起。
在这里插入图片描述
但是在这里没有看到加密参数的生成。我们继续调试。
在vm中看到如下代码,代码被压缩,不可读。
在这里插入图片描述
对这段脚本做了初步的调试,觉得比较繁琐,暂时放弃。
经过观察,请求每次发起,6SQk6G2z和c1SoYK0a的值都是变动的。在观察fw.js这个脚本,猜测反爬脚本应该是修改了$.ajax的原型方法,在请求头上固定加上了加密的参数。但鉴于脚本不可读,本人也比较懒,遂想了一个讨巧的方式来处理。

采集方法

既然在浏览器环境下,请求是手动触发的。那么改成自动触发,数据就可以自动收集了。
我的第一个想法就是用selenium,但经过尝试,selenium会被药监网站反爬,遂放弃。
既然selenium不行,那就祭出杀招,chrome插件。
理了一下,整体的思路就出来了。

在这里插入图片描述
部分脚本,截图如下:

  • chrome插件脚本
    在这里插入图片描述
    在这里插入图片描述
  • 本地服务
    在这里插入图片描述
    列表和详情的处理方法都是一致的。

总结

上面就简短分享了我自己处理这次抓爬的处理思路,如果大家有好的方法,可以分享学习,共勉。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值