上代码

import requests
import json
#请求地址
url="http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList"
#浏览器伪装
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36"
}
id_list=[]#存储企业id
all_data_list=[]#存储所有的企业详情数据
for page in range(1,10):#请求10页数据,可以请求360页page=str(page)data={#所有请求数据,在f12开发者工具中network-HXR-header"on":"true","page":page,"pageSize":"15","productName":"","conditionType":"1","applyname":"","applysn":"",}json_ids=requests.post(url=url,headers=headers,data=data).json()for dic in json_ids["list"]:id_list.append(dic["ID"])
print(id_list)
#获取企业的详情数据
post_url="http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById"
for id in id_list:data={"id":id}datail_json=requests.post(url=post_url,headers=headers,data=data).json()all_data_list.append(datail_json)
#持久化存储
fp=open("./化妆品公司数据.json","w",encoding="utf-8")
json.dump(all_data_list,fp=fp,ensure_ascii=False,indent=True)
print("数据抓取完成!")

第一:浏览器请求地址
“http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList”

网站页面:


爬取数据均属于公开数据,不存在违法行为!
直接在首页打开f12,network,HXR,header

浏览器伪装部分:


data={#所有请求数据,在f12开发者工具中network-HXR-header"on":"true","page":page,"pageSize":"15","productName":"","conditionType":"1","applyname":"","applysn":"",}

异步请求的原理
浏览器把请求交给代理对象—XMLHttpRequest(绝大多数浏览器都内置了这个对象),由代理对象向服务器发起请求,接收、解析服务器响应的数据,并把数据更新到浏览器指定的控件上。从而实现了页面数据的局部刷新。

看这里每个企业的详情数据


我们再来对比每个企业的源代码中的请求数据到底哪里不一样
例如这里的第一个企业和第二个企业
第一个:
第二个:
看到了吗,每个企业都有一个专属id,我们要请求到每个企业的详情数据就必须拿到每个企业的专属id

post_url="http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById"
for id in id_list:data={"id":id}datail_json=requests.post(url=post_url,headers=headers,data=data).json()all_data_list.append(datail_json)

这里的url地址就是详情页里的url地址

最后我们在对抓取的数据进行持久化储存

fp=open("./化妆品公司数据.json","w",encoding="utf-8")
json.dump(all_data_list,fp=fp,ensure_ascii=False,indent=True)
print("数据抓取完成!")

新手博主,请前辈批评指正———@丁一

爬虫实例3 批量抓取数据之异步请求(ajax)相关推荐

  1. webscraper多页爬取_Web Scraper 翻页——控制链接批量抓取数据(Web Scraper 高级用法)| 简易数据分析 05...

    这是简易数据分析系列的第 5 篇文章. 上篇文章我们爬取了豆瓣电影 TOP250 前 25 个电影的数据,今天我们就要在原来的 Web Scraper 配置上做一些小改动,让爬虫把 250 条电影数据 ...

  2. python爬虫实例-运用requests抓取豆瓣电影TOP250(详解)

    目录 开发工具 目标 网页分析 正则匹配分析 代码实例 总结 开发工具 python版本: python-3.8.1-amd64 python开发工具: JetBrains PyCharm 2018. ...

  3. 爬虫入门,快速抓取数据

    大到各类搜索引擎,小到日常数据采集,都离不开网络爬虫.爬虫的基本原理很简单,遍历网络中网页,抓取感兴趣的数据内容.这篇文章会从零开始介绍如何编写一个网络爬虫抓取数据,然后会一步步逐渐完善爬虫的抓取功能 ...

  4. qpython爬虫_python爬虫教程:批量抓取 QQ 群信息

    前言 本文讲解Python批量抓取 QQ 群信息,包括群名称.群号.群人数.群主.地域.分类.标签.群简介等内容,返回 XLS / CSV / JSON 结果文件. 基本环境配置 版本:Python2 ...

  5. java广度优先爬虫示例,【爬虫】广度优先遍历抓取数据概述

    这次都是一些纯语言的表达,可能会有点啰嗦,或者有点枯燥,也是对爬虫的一些小小的见解,可能只是一些常见话,哈哈,还是耐心的写完. 网络爬虫的整体执行流程: 1)确定一个(多个)种子网页 2)进行数据内容 ...

  6. 网络爬虫-模拟手机浏览器抓取数据

    有些网站的数据在PC端很复杂,参数加密很严重,但是移动APP端的就没那么多加密,所以在遇到有些瓶颈的情况下,可以考虑从网页端转到移动端去抓包,爬取数据.这里有两种方法: 一. 使用模拟器下载APP 如 ...

  7. Python爬虫来啦,抓取数据导出到excel,简单明了,强大,直接贴代码

    #!/usr/bin/pythonimport requests import xlwt from bs4 import BeautifulSoupdef getHouseList(url):hous ...

  8. 数据抓取软件是如何抓取数据的?

    数据抓取现在是大多数企业公司都会使用的一种批量集成获取数据的技术手段.他能高效快捷的帮助企业获取想要的信息.也是有着人工无法比拟的优势.那么爬虫软件是怎么抓取数据的?使用过程中又是如何检测爬虫ip的? ...

  9. 测试开发Python培训:抓取新浪微博抓取数据-技术篇

    测试开发Python培训:抓取新浪微博抓取数据-技术篇 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的sele ...

  10. python爬取新浪微博数据中心_Python爬虫框架Scrapy实战之批量抓取招聘信息

    网络爬虫抓取特定网站网页的html数据,但是一个网站有上千上万条数据,我们不可能知道网站网页的url地址,所以,要有个技巧去抓取网站的所有html页面.Scrapy是纯Python实现的爬虫框架,用户 ...

最新文章

  1. 算法设计思想(5)— 递归法
  2. 浅析epoll – epoll例子以及分析 - C++爱好者博客
  3. webstorm中配置vue代码片段
  4. 51nod 1287: 加农炮 好题啊好题
  5. Selenium + Python操作IE 速度很慢的解决办法
  6. [No0000D2]ClearCSharp编程清理脚本批处理bat
  7. 碉堡完整的高性能PHP应用服务器appserver
  8. 80--查询分组关联属性
  9. 前端笔记-freemarker模板获取后端数据及提交数据
  10. DIV+CSS如何让文字垂直居中
  11. 【渝粤教育】国家开放大学2018年秋季 1374T班级管理 参考试题
  12. winform npoi 将execl转换成datatable,导入数据库
  13. java的日期格式化
  14. 外贸建站五大必备要领
  15. 搜狗VS有道,搜索市场追赶者
  16. at/atq/atrm
  17. mysql cpu 高 原因 汇总_MySQL CPU 使用率高的原因和解决方法(来自aliyun官方文档)
  18. Geany无法识别中文怎么办
  19. uni-app 表单验证
  20. 面试怎样做自我介绍?

热门文章

  1. 浅析:提升手机APP开发和运营成效的经验分享
  2. Kafka学习之broker配置(0.8.1版)(转)
  3. ny17 单调递增最长子序列
  4. Centos 6.3中安装KVM
  5. CSS content 属性 CSS counter-increment 属性 CSS counter-reset 属性
  6. 18.看板方法---精益的一种经济学模型
  7. 1.程序员的自我修养---简介
  8. 59. DNS 服务器
  9. 3.高性能MySQL --- 服务器性能剖析( 2 )
  10. 47.使用外部 JavaScript 和 CSS(8)