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…

Java 异常

异常概念 Java异常是程序在执行过程中发生的错误事件&#xff0c;它打断了正常的流程控制流。 在Java中&#xff0c;异常被定义为一种特殊的对象&#xff0c;它们可以被抛出、捕获和处理。以下是关于Java异常的一些详细信息&#xff1a; 异常分类&#xff1a;Java中的异常分…

AI大模型评测问题集合

文章目录 编程能力测试工作场景价值观测试生活场景数学能力测试中文能力测试编程能力测试 第一题:Google 面试题,Python 题目 给定一组不同的整数数组,给出一个算法对这些整数进行随机排序,使每个重 排序方法的可能性相等。换句话说,给定一副牌,你要如何洗牌才能确保牌的…

vue2 mixin的用法

在 Vue 2 中&#xff0c;mixin 是一种分发 Vue 组件中可复用功能的非常灵活的方式。一个 mixin 对象可以包含任意组件选项。当组件使用 mixin 对象时&#xff0c;所有 mixin 对象的选项将被“混合”进入该组件本身的选项。 下面是如何在 Vue 2 中使用 mixin 的基本步骤&#x…

聚类分析字符串数组

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

C++ //练习 13.34 编写本节所描述的Message。

C Primer&#xff08;第5版&#xff09; 练习 13.34 练习 13.34 编写本节所描述的Message。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /*************************************************************************>…

机器学习笔记-01

一…AI&#xff08;人工智能&#xff09; 二.机器学习–是人工智能实现的途径 三.深度学习–是机器学习的一个方法 1.机器学习能做什么&#xff1a; 1.1 传统预测 1.2 图像识别 1.3 自然语言处理&#xff08;nlp&#xff09; 2.数据集包含&#xff1a;特征值 目标值 3.机器学…

python绘制三维图

在Python中&#xff0c;我们可以使用matplotlib库中的mplot3d工具包来绘制三维图。下面是一个简单的例子&#xff0c;绘制了一个三维的散点图和一个三维曲面图&#xff1a; 首先&#xff0c;确保已经安装了matplotlib库。如果没有&#xff0c;可以通过pip进行安装&#xff1a;…

C#中的Task:异步编程的瑞士军刀

在现代软件开发中&#xff0c;异步编程已经成为处理I/O密集型任务和网络操作的重要手段。C#中的Task是.NET Framework 4.0引入的一个并发编程的抽象&#xff0c;它在后续的.NET Core和.NET 5中得到了进一步的发展和完善。Task代表了一个异步操作&#xff0c;可以等待它的完成&a…

统一所有 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;数字化转型已不再是选择题&#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 …

Linux 抽象命名空间(Abstract Namespace)详细介绍

Linux 抽象命名空间&#xff08;Abstract Namespace&#xff09;是 Unix 域套接字&#xff08;Unix Domain Socket, UDS&#xff09;家族中的一种特殊类型&#xff0c;用于进程间通信&#xff08;IPC&#xff09;。相比于传统的 Unix 域套接字&#xff08;文件系统命名空间和临…

stm32HAL库-GPIO

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