python爬虫 - 爬取html中的script数据(zum.com新闻信息 )

server/2024/9/23 6:24:50/

文章目录

  • 1. 分析页面内容数据格式
  • 2. 使用re.findall方法,编写html" title=爬虫>爬虫代码
  • 3. 使用re.search 方法,编写html" title=爬虫>爬虫代码

1. 分析页面内容数据格式

(1)打开 https://zum.com/

(2)按F12(或 在网页上右键 --> 检查(Inspect))

(3)找到网页上的Network(网络)部分

(4)鼠标点击网页页面,按 Ctrl + R 刷新网页页面,可以看到 NetWork(网络)部分会刷新出很多的网络信息

(5)在Name 列,找到 zum.com 条目,右侧自动显示网页的相关内容:Headers, Preview, Response … …

(6)分析Response内容,所需要关心的内容,位于整个html页面的下面

在这里插入图片描述
在这里插入图片描述

2. 使用re.findall方法,编写html" title=爬虫>爬虫代码

要点:从window.INITIAL_STATE=到;之间的数据都是json数据。 json.loads会自动将false转为False, true转为True


import re
import requests
import jsonurl = "https://zum.com/"
response = requests.get(url)
str1 = response.content.decode()result = re.findall(r"window\.__INITIAL_STATE__=(.*?}});", str1)  json_result = json.loads(result[0])
print(f"json_result = [{json_result}]")print(f'data.fetchedCommonResponse  = {json_result["fetchedCommonResponse"]}')
print(f'data.isDarkTheme                       = {json_result["isDarkTheme"]}')for item in json_result["headerStore"]["gnb"]["gnbItems"]:print(f'idx = {item["idx"]}, 'f'title = {item["title"]} ')

运行结果:

在这里插入图片描述在这里插入图片描述

使用工具格式化后数据内容:

在这里插入图片描述

3. 使用re.search 方法,编写html" title=爬虫>爬虫代码

要点:从window.INITIAL_STATE=到;之间的数据都是json数据。 json.loads会自动将false转为False, true转为True


import re
import json
import requestsurl = "https://zum.com/"
html_doc = requests.get(url).textdata = re.search(r"window\.__INITIAL_STATE__=(.*?}});", html_doc)
print(f"data = {data}")data = json.loads(data.group(1))
print(data)# pretty print the data:
print(json.dumps(data, indent=4))print(f'data.fetchedCommonResponse        = {data["fetchedCommonResponse"]}')
print(f'data.isDarkTheme                  = {data["isDarkTheme"]}')for item in data["headerStore"]["gnb"]["gnbItems"]:print(f'idx = {item["idx"]}, 'f'title = {item["title"]} ')

运行结果如下,其中 json.dumps() 对数据格式进行了美化:

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/server/19293.html

相关文章

流量网关与服务网关的区别:(面试题,掌握)

流量网关:(如Nignx,OpenResty,Kong)是指提供全局性的、与后端业务应用无关的策略,例如 HTTPS证书认证、Web防火墙、全局流量监控,黑白名单等。 服务网关:(如Spring Clou…

大模型的幻觉---探讨及解决之道

大模型「幻觉」背景 幻觉可以说早就已经是LLM老生常谈的问题了,那为什么会产生这个现象该如何解决这个问题呢?大模型幻觉产生的背景主要涉及人类视觉系统的特性和大规模机器学习模型的复杂性。以下是对大模型幻觉产生背景的详细说明和介绍: …

Excel常用函数

目录 1、数学函数2、统计函数3、逻辑函数3、日期函数4、文本函数5、查找与引用函数 注意: 如果有函数不会用可以在Excel插入公式中选择,或查看该函数有关帮助的介绍。 1、数学函数 数学函数作用用法INT()取整MOD()求余数ROUND()四舍五入ABS()取绝对值SQ…

ZYNQ之嵌入式开发04——自定义IP核实现呼吸灯、固化程序

文章目录 自定义IP核——呼吸灯实验固化程序 自定义IP核——呼吸灯实验 Xilinx官方提供了很多IP核,在Vivado的IP Catalog中可以查看这些IP核,在构建自己复杂的系统时,只使用Xilinx官方的免费IP核一般满足不了设计的要求,因此很多…

C#基础之值类型和引用类型

值类型和引用类型 文章目录 值类型和引用类型1、使用和存储上的区别2、特殊的引用类型string 引用类型:string,数组,类 值类型:其他类型,结构体 1、使用和存储上的区别 1、使用上的区别//值类型int a 10;//引用类型…

opencv图像处理

1、图像滤波处理 通过滤波来提取图像特征,消除噪声。 常用滤波方式有:均值滤波、高斯滤波、中值滤波、双边滤波。 高斯滤波: blur_gray cv2.GaussianBlur(orgGray, (kernel_size, kernel_size), 0) orgGray:灰度图像&#xf…

MongoDB 与MySQL的区别?优势?

MongoDB 与 MySQL 是两种不同类型的数据库管理系统,它们各自有独特的数据模型、查询语言、扩展方式以及适用场景。以下是它们的主要区别与各自的优势: 区别: 数据模型: MySQL:基于关系模型,使用表格&#…

uniapp自定义国际化语言uni.chooseImage、picker组件文本错误问题

最近遇到国际化后 uni.chooseImage、picker 组件文本显示问题 如图: 解决方法: 在对应的语言包中加入: 即可完美解决