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

文章目录

  • 1. 分析页面内容数据格式
  • 2. 使用re.findall方法,爬取新闻
  • 3. 使用re.search 方法,爬取新闻

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

  • 打开 https://36kr.com/

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

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

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

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

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

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

2. 使用re.findall方法,爬取新闻

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


import re
import requests
import json# URL路径
url = "https://36kr.com/"
response = requests.get(url)
str1 = response.content.decode()# 查找,使用正在表达式->取数组的第一个
result = re.findall("<script>window.initialState=(.*?)</script>", str1)[0]# 先写入到本地,再查看
with open("36kr.json", "w", encoding="utf-8") as f:f.write(result)# 加载json转换成python类型
json_result = json.loads(result)
print(json_result)# pretty print the data: 其中 json.dumps() 对数据格式进行了美化:
print(json.dumps(json_result, indent=4))print(f'data.theme        = {json_result["theme"]}')
print(f'data.isSpider     = {json_result["isSpider"]}')for item in json_result["channel"]:print(f'name = {item["name"]}, 'f'key = {item["key"]} ')

运行结果:

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

3. 使用re.search 方法,爬取新闻

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


import re
import json
import requests# URL路径
url = "https://36kr.com/"
html_doc = requests.get(url).textdata = re.search(r"<script>window.initialState=(.*?)</script>", html_doc)
print(f"data = {data}")json_result = json.loads(data.group(1))
print(f"json_data = {json_result}")# pretty print the data:
print(f"json_dump = {json.dumps(json_result, indent=4)}")print(f'data.theme        = {json_result["theme"]}')
print(f'data.isSpider     = {json_result["isSpider"]}')for item in json_result["channel"]:print(f'name = {item["name"]}, 'f'key = {item["key"]} ')

运行结果:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/3654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++初阶——类和对象(中)

大家好&#xff0c;我是小锋&#xff0c;我们今天继续来学习类和对象。 类的6个默认成员函数 我们想一想如果一个类什么都没有那它就是一个空类&#xff0c;但是空类真的什么都没有吗&#xff1f; 其实并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以…

电脑提示丢失iutils.dll怎么办?一分钟教你搞定dll丢失问题

在计算机世界中&#xff0c;DLL&#xff08;Dynamic Link Library&#xff0c;动态链接库&#xff09;文件扮演着至关重要的角色&#xff0c;它们如同乐高积木中的基础模块&#xff0c;不同程序通过调用这些模块来实现各种功能。其中&#xff0c;iutils.dll就是这样一款不可或缺…

transformer 最简单学习3, 训练文本数据输入的形式

1、输入数据中&#xff0c;源数据和目标数据的定义 def get_batch(source,i):用于获取每个批数据合理大小的源数据和目标数据参数source 是通过batchfy 得到的划分batch个 ,的所有数据&#xff0c;并且转置列表示i第几个batchbptt 15 #超参数&#xff0c;一次输入多少个ba…

聚类分析字符串数组

聚类分析字符串数组 对多个字符串进行聚类分析旨在根据它们之间的相似度将这些字符串划分成若干个类别&#xff0c;使得同一类别内的字符串彼此相似度高&#xff0c;而不同类别间的字符串相似度低 小结 数据要清洗。清洗的足够准确&#xff0c;可能不需要用聚类分析了数据要…

统一所有 LLM API:支持预算与速率限制 | 开源日报 No.229

BerriAI/litellm Stars: 6.7k License: NOASSERTION litellm 是一个使用 OpenAI 格式调用所有 LLM API 的工具。它支持 Bedrock、Azure、OpenAI、Cohere、Anthropic 等 100 多种 LLMs&#xff0c;提供企业级代理服务器和稳定版本 v1.30.2。 主要功能和优势包括&#xff1a; 将…

javaEE初阶——多线程(八)——常见的锁策略 以及 CAS机制

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享分治算法关于多线程进阶的章节——关于常见的锁策略以及CAS机制 如果有不足的或者错误的请您指出! 目录 多线程进阶1.常见的锁策略1.1乐观锁和悲观锁1.2重量级锁 和 轻量级锁1.…

【大数据】分布式数据库HBase

目录 1.概述 1.1.前言 1.2.数据模型 1.3.列式存储的优势 2.实现原理 2.1.region 2.2.LSM树 2.3.完整读写过程 2.4.master的作用 1.概述 1.1.前言 本文式作者大数据系列专栏中的一篇文章&#xff0c;按照专栏来阅读&#xff0c;循序渐进能更好的理解&#xff0c;专栏…

JS实现对用户名、密码进行正则表达式判断,按钮绑定多个事件,网页跳转

目标&#xff1a;使用JS实现对用户名和密码进行正则表达式判断&#xff0c;用户名和密码正确时&#xff0c;进行网页跳转。 用户名、密码的正则表达式检验 HTML代码&#xff1a; <button type"submit" id"login-btn" /*onclick"login();alidate…

精益思想赋能数字化转型:落地策略与实践路径

当下&#xff0c;数字化转型已不再是选择题&#xff0c;而是关乎企业生存与发展的必答题。然而&#xff0c;转型过程中如何确保效率、降低成本并快速实现价值创造&#xff0c;成为了摆在众多企业面前的难题。精益思想作为一种追求精益求精、持续改进的管理思维&#xff0c;为数…

2024最新版JavaScript逆向爬虫教程-------基础篇之面向对象

目录 一、概念二、对象的创建和操作2.1 JavaScript创建对象的方式2.2 对象属性操作的控制2.3 理解JavaScript创建对象2.3.1 工厂模式2.3.2 构造函数2.3.3 原型构造函数 三、继承3.1 通过原型链实现继承3.2 借用构造函数实现继承3.3 寄生组合式继承3.3.1 对象的原型式继承3.3.2 …

stm32HAL库-GPIO

一 什么是 GPIO: GPIO(general porpose intput output), 通用输入输出端口 . 二 我们先认识芯片控制 GPIO 输出控制。 2.1LED 硬件原理如图&#xff1a; 当电流从这根电线流通&#xff0c; LED 亮。当电流不通过这根电线&#xff0c; LED 灭。 上面 PF** &#xff0c;芯片电…

MySQL面试——聚簇/非聚簇索引

存储引擎是针对表结构&#xff0c;不是数据库 引擎层&#xff1a;对数据层以何种方式进行组织 update&#xff1a;加索引&#xff1a;行级锁&#xff1b;不加索引&#xff1a;表级锁

固态继电器:推进可再生能源系统

随着可再生能源系统的发展&#xff0c;太阳能系统日益成为现代能源解决方案的先锋。在这种背景下&#xff0c;固态继电器&#xff08;SSR&#xff09;&#xff0c;特别是光耦固态继电器的利用变得日益突出。本文旨在深入探讨SSR在可再生能源系统中的多方位应用&#xff0c;重点…

【学习笔记】Python 使用 matplotlib 画图

文章目录 安装中文显示折线图、点线图柱状图、堆积柱状图坐标轴断点参考资料 本文将介绍如何使用 Python 的 matplotlib 库画图&#xff0c;记录一些常用的画图 demo 代码 安装 # 建议先切换到虚拟环境中 pip install matplotlib中文显示 新版的 matplotlib 已经支持字体回退…

SD-WAN:灵活、低成本、便于管理

近年来&#xff0c;SD-WAN&#xff08;软件定义广域网&#xff09;技术成为企业网络领域的新趋势&#xff0c;其带来的变革性影响备受瞩目。凭借出色的灵活性、高效的可管理性以及显著的成本优势&#xff0c;SD-WAN技术为企业网络注入了新的活力。 首先&#xff0c;SD-WAN技术的…

如何利用diskpart命令界面在win10/win11上解除U盘写保护

背景 在把U盘作为系统盘装了一次后&#xff0c;惊讶的发现自己U盘的一个1M的小卷被写保护了。不能格式化&#xff0c;不能删除文件&#xff0c;在给用户拷文件的时候&#xff0c;小卷还会提示病毒告警&#xff0c;非常的尴尬&#xff0c;因此展开了研究。 失败的尝试 尝试了网…

58、回溯-组合总和

思路&#xff1a; 数组内的每一个元素都可以无线使用只要最后可以拼接成target就可以。那么如何限制呢&#xff1f; &#xff08;target-已经拼接的和 &#xff09;/当前元素 就是你可以利用的数量。代码如下&#xff1a; class Solution {public static List<List<I…

触发器的基本概念及分类

目录 触发器的基本概念 作用对象 触发事件 触发条件 触发时间 触发级别或者触发频率 触发器的分类 DML 触发器 INSTEAD OF 触发器 系统触发器 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 触发器的基本概念 …

2024年电商视频号夏令营(第四期)零基础带你玩转微信视频号

教学内容&#xff1a; 下 载 地 址&#xff1a; laoa1.cn/1821.html 1.剪辑软件整套实例教程0基本一小时懂得视频编辑 1.上课前必看 1.如何获实拍视频的原创素材 2.怎样运送视频水印&#xff0c;提取图片文案脚本 2.如何发布爆款短视频 2.微信视频号基本功能解读 2.直播的时…

软件物料清单(SBOM)生成指南 .pdf

如今软件安全攻击技术手段不断升级&#xff0c;攻击数量显著增长。尤其是针对软件供应链的安全攻击&#xff0c;具有高隐秘性、追溯难的特点&#xff0c;对企业软件安全威胁极大。 同时&#xff0c;软件本身也在不断地更新迭代&#xff0c;软件内部成分安全性在持续变化浮动。…