【药监总局】python抓取企业详情数据
提前准备工作
一.http://scxk.nmpa.gov.cn:81/xk/
二.要求:抓取每一家企业的企业详情数据
思路
1.在对一个陌生的网站进行数据爬取前,首先要确定我们想要爬取的数据是否为动态加载数据?
2.先进入到任意一家企业的详情页中,查看企业的详情数据是否为动态加态数据?
# 3.基于抓包工具进行局部搜索# 搜索的到:不是动态加载# 搜索不到:是动态加载# 发生企业的详情数据是动态加载数据
3如何捕获动态加载数据
# 基于抓包工具进行全局搜索,定位到动态加载数据对应的数据包# url:http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById# 请求方式:POST# 请求参数: id: a3fc0c56ea71460b9b94fc356a81a35a
# 再次对另一家企业的企业详情数据进行分析# 定位到了动态加载数据对应的数据包# 在该数据包中可以提取到url,请求方式和请求参数,对比发现,不同企业的详情数据的数据包请求方式和url是一样的,只有请求参数id的值不一样#结论:不同企业的企业详情数据对应的数据包只有id的参数不同,剩下都一样#结果:如果我们可以批量获取多家企业的id值,就可以批量获取更多家企业的企业详情数据。# 如何指量获取多家企业的id值?# id通常表示一组数据的唯一标识。联想到企业的名称也会作为企业的唯一标识# 那么会不会企业的id和企业的名称在页面中是绑定在一起的呢?# 测试:在首页通过企业名称找到企业的id# 通过抓包工具的分析,首页中企业的名称等信息也是动态加载数据。# 捕获动态加载数据。定位到指定的数据包,从数据包的响应数据中发现了不同企业id# 就可以将不同企业的id取到
解析网页如下(图一)
图二
##点击进入单个网页公司 - > 解析(图三)
撸代码
import requests
# import json
# UA伪装
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36X-Requested-With: XMLHttpRequest'
}main_url ='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
m_data = {'on': 'true','page': '1','pageSize': '15','productName': '','conditionType': '1','applyname': '','applysn': ''
}m_response=requests.post(url=main_url,headers=headers,data=m_data)
json_data = m_response.json()
ids = [] # 存储多家企业的id
for dic in json_data['list']:_id = dic['ID']ids.append(_id)# print(_id)# 循环对每一家企业的详情数据进行获取
for _id in ids:# 指定urlurl = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'# 请求参数data = {'id': _id}# 发起的post请求response = requests.post(url=url,data=data,headers=headers)# response.encoding("utf-8")# 获取响应数据json_data = response.json() # 如果确定响应数据为json格式字符串才可以调用json方法现实格式化# 获取企业名称,法人代表,许可证编号 生产许可项目 企业住所print(json_data['epsName'],json_data['legalPerson'],json_data['productSn'],json_data['certStr'],json_data['epsProductAddress'])
爬取想要的信息如(图)
执行结果
【药监总局】python抓取企业详情数据相关推荐
- 微信好友大揭秘,使用Python抓取朋友圈数据,通过人脸识别全面分析好友,一起看透你的“朋友圈”...
微信:一个提供即时通讯服务的应用程序,更是一种生活方式,超过数十亿的使用者,越来越多的人选择使用它来沟通交流. 不知从何时起,我们的生活离不开微信,每天睁开眼的第一件事就是打开微信,关注着朋友圈里好友 ...
- 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...
[一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...
- 手把手教你使用Python抓取QQ音乐数据!
[一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...
- 电视剧《大秦赋》最近很火!于是我用Python抓取了“相关数据”,发现了这些秘密............
前言 最近,最火的电视剧莫过于<大秦赋了>,自12月1日开播后,收获了不错的口碑.然而随着电视剧的跟新,该剧在网上引起了激烈的讨论,不仅口碑急剧下滑,颇有高开低走的趋势,同时该剧的评分也由 ...
- python豆瓣影评_使用Python抓取豆瓣影评数据的方法
抓取豆瓣影评评分 正常的抓取 分析请求的url https://movie.douban.com/subject/26322642/comments?start=20&limit=20& ...
- python爬取qq音乐歌曲链接为什么播放不出来_手把手教你使用Python抓取QQ音乐数据(第一弹)...
原标题:手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. ...
- 手把手教你使用Python抓取QQ音乐数据(第四弹)(文末赠书)
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 千里之行,始于足下. [一.项目目 ...
- 如何用python抓取qq音乐_手把手教你使用Python抓取QQ音乐数据(第三弹)-阿里云开发者社区...
[一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...
- python音乐的数据抓取与分析_手把手教你使用Python抓取QQ音乐数据!
[一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...
最新文章
- 安装TensorFlow时出现ERROR: Cannot uninstall ‘wrapt‘问题的解决方案
- java runtime shell_java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现...
- 【人脸识别终结者】多伦多大学反人脸识别,身份欺骗成功率达99.5%
- 名词解释 JDK JRE JVM
- 执行transact-sql语句或批处理时发生异常_DAY5-step6 Python异常处理:try, raise,except, finally...
- yum安装virtualbox_CentOS7安装virtualbox
- Snake算法与遥感影像应用,python matlab对比
- 搭建测试环境如何配置软件,软件测试环境的搭建(Windows版)
- 华为一员工猝死出租屋 警方初步排除他杀
- android 二级联动列表,仿eleme点餐页面
- 公众号后台管理系统php开发,微信公众平台开发管理后台开发
- 李沐动手学深度学习V2-NLP文本预处理和代码实现
- 程序员如何提升自己的代码质量?
- Framework学习(五)应用程序启动过程
- 11.14 尚品汇 day01 脚手架,路由命名,路由跳转,传参,props传参,重写push,replace
- 新学期——学习计划大挑战
- verilog一二三段式状态机的标准区别和示例
- 第十二届蓝桥杯软件类模拟赛python程序设计 第二期(6)平行四边形面积
- OTN光传送网(Optical Transport Network)什么是OTN
- IRC扫盲——你可以不会玩QQ,但不能不会IRC!
热门文章
- 嗨购严选是什么,公司模式制度怎么样?
- cvte2019校园招聘嵌入式编程题1详解
- go 语言中 struct 中 json 是代表什么意思
- golang GO111MODULE是用来干什么的?
- 移动端基础及响应式布局
- extjs源码分析-(Ext.urlDecode/urlEncode)
- Revit 2019: Essential Training for Architecture (Metric) Revit 2019:建筑基本培训(公制) Lynda课程中文字幕
- pandas数据处理——时间差计算
- 基于用户的电视节目推荐算法实例
- 嵌入式ARM开发板学习方法步骤