爬虫实例——化妆品相关数据(多页)

2024-01-26 03:59

本文主要是介绍爬虫实例——化妆品相关数据(多页),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、题目描述

二、步骤

1、查看响应URL获取到的内容

                ①指定URL

                ②获取请求

                ③获得响应数据

                ④持久化处理(存储到文件中)

 2、内容判断

3、验证动态请求(抓包工具)

                ①打开抓包工具(页面右键的检查)

                ②找到对应的数据包(对比URL)

                ③对比响应数据

                ④结论

4、动态加载数据        

                ①判断其请求方式

                ②查看求请求包内容

                ③查看resposne返回的内容

                ④观察详情页的URL的规律

五、源码

六、总结


一、题目描述

爬取国家药品监督管理总局中基于中华人民共和国化妆品生产许可证相关数据

二、步骤

1、查看响应URL获取到的内容

        最笨的办法:通过代码去测定获取到的URL内容

                ①指定URL

 # step 1:指定URLurl = 'https://m.sogou.com/'

                ②获取请求

# step 2:发起请求# get方法会返回一个响应对象response = requests.get(url=url)

                ③获得响应数据

 # step 3:获取响应数据,text返回的是字符串形式的响应数据page_test = response.textprint(page_test)

                ④持久化处理(存储到文件中)

    with open('./sogou.html', 'w', encoding='utf-8') as fp:fp.write(page_test)print('爬取数据结束')

 2、内容判断

        通过对获取的信息的与通过浏览器得到的页面相对比发现有不同之处,不同之处在于获取的信息中不包括企业的信息(因为企业的信息一定不是通过URL的方式得到的,而是其他方式——ajax动态请求)

3、验证动态请求(抓包工具)

                ①打开抓包工具(页面右键的检查)

                ②找到对应的数据包(对比URL)

                ③对比响应数据

        url对应的响应数据在保存response中,此时的内容就是通过requests请求得到的内容,在源码中进行搜索就能判断请求的数据是否是URL页面的数据

                ④结论

        针对相关的需求进行页面爬取时,爬取的网页中的数据可能是动态加载的,不一定能由地址栏中URL请求得到,可能是其它的加载方式

4、动态加载数据        

                ①判断其请求方式

        打开抓包工具,将选项卡切换到SHR中,然后再进行请求发送,发现得到ajax请求包

                ②查看求请求包内容

(URL,请求方式,是否携带参数,响应回来的数据类型)

                ③查看resposne返回的内容

response中返回的是json数据,通过json格式化工具查看其内容,发现其就是首页中显示的数据

                ④观察详情页的URL的规律

其域名都相同,只是所对应的ID不同,而ID存储在前一个页面返回的JSON数据中,所以将域名和ID进行拼接得到的就是详情页的URL,得到URL之后再验证其是否是动态加载的数据(用抓包工具判断)。

五、源码

# -*- coding: utf-8 -*-
import requests
import jsonif __name__ == '__main__':#批量获取不同企业的id值headers = {'User-Agent': 'Mozilla  /5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36'}id_list = []  # 存储企业的idall_data_list = []  # 存储所有的企业详情数据url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList'#参数的封装for page in range(1,6):data = {'on':'true','page':'1','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'])post_url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById'for id in id_list:data = {'id':id}detail_json = requests.post(url=post_url,headers=headers,data=data).json()all_data_list.append(detail_json)#持久化存储all_data_listfp = open('./allData.json','w',encoding='utf-8')json.dump(all_data_list,fp=fp,ensure_ascii=False)print('over')

六、总结

        此代码试运行不了的,因为有一些反扒机制的存在,但是其思维的方式以及整个的逻辑思维是通用的,而且是普遍的,所以要体会其过程和逻辑,然后再多实践,形成一个固定思维。

        视频连接:

2020年Python爬虫全套课程(学完可做项目)_哔哩哔哩_bilibili需要课件的兄弟姐妹们可以加VX:ylai003 领取视频中老师的课件和代码喜欢的伙伴方便留个三连ヾ(◍°∇°◍)ノ゙,会继续更新优质教程给大家~~https://www.bilibili.com/video/BV1Yh411o7Sz?p=15&spm_id_from=pageDriver

        此视频老师的思路清晰,讲的也很细致,听的也很明白,但是不适合0基础的人去听,最少要先了解python的知识,然后有一点爬虫的知识,不然听起来会有点吃力,如果想尝试也是可以的 

        

这篇关于爬虫实例——化妆品相关数据(多页)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645582

相关文章

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1