首先访问这个页面 url = 'http://125.35.6.84:81/xk/'

我们的目标是抓取这里的每一个企业的详情页数据,但是可以发现这里只有企业的简介信息,所以这就意味着我们要发送两次get请求。

在写代码之前,我们可以大概看一下我们想要的数据大概在什么位置。

1. 我们打开一个公司的详情页

 2. 右击检查,通过Response查找对应的目标数据

从这里我们可以看出,当前的数据是通过ajax请求动态加载出来的

3.查看头信息,以及参数信息

我们可以看出,当前的请求是post请求,所需要的参数是id,但是从以上的数据来看我们并没有发现哪里有id这个参数。因为我们将目光聚焦到首页。

4. 分析首页所返回的数据

同样是右击检查,打开抓包工具

从这里我们可以看出首页的数据也是通过ajax动态加载出来的,并且通过观察我们可以发现在ID的踪迹,至此我们就可以形成一条完整的思路。

5.我们可以看看首页的请求方式,与是否携带了参数

6. 思路:拿到首页的响应数据的ID,并以此为参数向详情页发送post请求,拿到每个详情页的详情数据。

7.代码实现:

import requests
import json if __name__ == '__main__':
# 获取各个企业id
id_list = []
# 这里的url并非是首页的url 首页中的所有企业信息都是通过ajax动态请求的 因此应查看对应包中的url
url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList'
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'
}
# 获取前五页的数据
for page in range(1, 5):
page = str(page)
# 首页请求所需参数
data = {
'on': 'true',
'page': page,
'pageSize': '15',
'productName': '',
'conditionType': '1',
'applyname': '',
'applysn': ''
} # 向首页发送请求
response = requests.post(url=url, data=data, headers=header)
# 拿到json格式的数据
info = response.json()
# 拿到所有企业信息的列表
target_id = info['list']
for i in target_id:
# 获取所有企业的id
id_list.append(i['ID']) # 获取企业详情信息
ret_list = []
url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById' # 获取所有企业的详情数据
for i in id_list:
data = {
'id': i
}
ret = requests.post(url=url, data=data, headers=header)
ret_list.append(ret.json()) # 持久化存储
fileName = 'files/药监总局.json'
with open(fileName, 'w', encoding='utf-8') as f:
f.write(json.dumps(ret_list, ensure_ascii=False))
print('work is done')

(二)requests-爬取国家药监局生产许可证数据的更多相关文章

  1. scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250

    scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...

  2. selenium爬取qq空间,requests爬取雪球网数据

    一.爬取qq空间好友动态数据 # 爬取qq空间好友状态信息(说说,好友名称),并屏蔽广告 from selenium import webdriver from time import sleep f ...

  3. 爬虫(二)Python网络爬虫相关基础概念、爬取get请求的页面数据

    什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫    1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...

  4. requests爬取百度音乐

    使用requests爬取百度音乐,我想把当前热门歌手的音乐信息爬下来. 首先进行url分析,可以看到: 歌手网页: 薛之谦网页: 可以看到,似乎这些路劲的获取一切都很顺利,然后可以写代码: # -*- ...

  5. Python爬虫实战二之爬取百度贴吧帖子

    大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不 ...

  6. 转 Python爬虫实战二之爬取百度贴吧帖子

    静觅 » Python爬虫实战二之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 ...

  7. 爬虫学习(二)--爬取360应用市场app信息

    欢迎加入python学习交流群 667279387 爬虫学习 爬虫学习(一)-爬取电影天堂下载链接 爬虫学习(二)–爬取360应用市场app信息 代码环境:windows10, python 3.5 ...

  8. Python爬虫入门——使用requests爬取python岗位招聘数据

    爬虫目的 使用requests库和BeautifulSoup4库来爬取拉勾网Python相关岗位数据 爬虫工具 使用Requests库发送http请求,然后用BeautifulSoup库解析HTML文 ...

  9. Requests爬取网页的编码问题

    Requests爬取网页的编码问题 import requests from requests import exceptions def getHtml(): try: r=requests.get ...

  10. Python爬虫系列之爬取美团美食板块商家数据(二)

    今天为大家重写一个美团美食板块小爬虫,说不定哪天做旅游攻略的时候也可以用下呢.废话不多说,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: requests模块: argpar ...

随机推荐

  1. dotnet 使用 TaskTupleAwaiter 同时等待多个任务简化代码写法

    在某些业务逻辑下,需要同时等待多个任务执行完成,才能继续往下执行后续逻辑.等待任务执行的逻辑,大部分情况下需要使用到 Task.WhenAll 方法,代码行数不少.另外,在需要获取多个异步任务的返回值 ...

  2. 2018-12-27-WPF-从-DrawingVisual-转-BitmapImage-图片

    title author date CreateTime categories WPF 从 DrawingVisual 转 BitmapImage 图片 lindexi 2018-12-27 11:3 ...

  3. Istio微服务入门---通过istio部署微服务实现灰度发布(15)

    一.Istio简介 1.1 Istio介绍 官方文档:https://istio.io/docs/concepts/what-is-istio/ 中文官方文档:https://istio.io/zh/ ...

  4. Oracle、达梦:获取两个表中差异的数据:minus(减法)

    Oracle.达梦:获取两个表中差异的数据:minus(减法) mysql没有.需要用别的方式替换 表结构必须一致,数据也必须一致才能减去 真实意思:T_1中的数据减去T_2中的数据.返回还多余的数据 ...

  5. 八、Dataphin

    Dataphin是阿里巴巴集团OneData数据治理方法论内部实践的云化输出,一站式提供数据采.建.管.用全生命周期的大数据能力,以助力企业显著提升数据治理水平,构建质量可靠.消费便捷.生产安全经济的 ...

  6. HTML页面 IE 兼容性设置

    网页第一行: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/html ...

  7. 了解Oracle中的Dual系统表

    首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...

  8. 十三、.net core(.NET 6)搭建ElasticSearch(ES)系列之dotnet操作ElasticSearch进行存取的方法

    .net core操作ES进行读写数据操作 在Package包项目下,新增NEST包.注意,包版本需要和使用的ES的版本保持一致,可以避免因为不兼容所导致的一些问题.例如我本机使用的ES版本是7.13 ...

  9. C 语言编程 — 指令行参数

    目录 文章目录 目录 前文列表 命令行参数 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C 语言编程 - 基本数据类型> < ...

  10. AIRIOT可视化组态引擎如何应用于物联业务场景中

    在物联网的业务应用场景中,可视化组态是一个必不可少的功能需求.不同的行业场景,都需要将物联设备采集的数据和业务场景状态进行直观的可视化展示,供使用者进行分析或决策.如工艺流程用能监测.3D场景构建.能 ...