爬取网站内容转为markdown 和 html(通常模式)

我们遇到一些自己喜欢内容,想保存下来,手动复制粘贴很麻烦,我们使用 python 来爬取这些内容。

一、代码

downlod.py

import os
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin# 目标网页(可以更改)
url = "https://www.baidu.com"# 指定保存的文件夹和 Markdown 文件名
save_folder = "web_md"
os.makedirs(save_folder, exist_ok=True)
md_filename = os.path.join(save_folder, "page.md")
images_folder = os.path.join(save_folder, "images")
os.makedirs(images_folder, exist_ok=True)# 获取网页内容
response = requests.get(url)
response.encoding = response.apparent_encoding
soup = BeautifulSoup(response.text, "html.parser")# 打开 Markdown 文件
with open(md_filename, "w", encoding="utf-8") as md_file:md_file.write(f"# {soup.title.string.strip()}\n\n")for element in soup.body.find_all(["p", "a", "code", "img", "h1", "h2", "h3", "h4", "h5", "h6", "pre"], recursive=True):if element.name == "h1":md_file.write(f"\n# {element.get_text(strip=True)}\n\n")elif element.name == "h2":md_file.write(f"\n## {element.get_text(strip=True)}\n\n")elif element.name == "h3":md_file.write(f"\n### {element.get_text(strip=True)}\n\n")elif element.name == "h4":md_file.write(f"\n#### {element.get_text(strip=True)}\n\n")elif element.name == "p":md_file.write(f"{element.get_text(strip=True)}\n\n")elif element.name == "a":link_text = element.get_text(strip=True)href = urljoin(url, element["href"])md_file.write(f"[{link_text}]({href})\n\n")elif element.name == "code":md_file.write(f"```\n{element.get_text(strip=True)}\n```\n\n")elif element.name == "pre":md_file.write(f"```\n{element.get_text()}\n```\n\n")elif element.name == "img":img_url = urljoin(url, element["src"])img_name = os.path.basename(img_url).split("?")[0]img_path = os.path.join(images_folder, img_name)try:img_data = requests.get(img_url).contentwith open(img_path, "wb") as img_file:img_file.write(img_data)md_file.write(f"![{img_name}](images/{img_name})\n\n")except Exception as e:print(f"下载 {img_url} 失败: {e}")print(f"Markdown 文件已保存至 {md_filename}")

二、安装环境

  1. 安装 python
  2. 管理员运行 cmd,最好挂梯子
pip install requests beautifulsoup4

在这里插入图片描述
3. 在 downlod.py 同级目录下运行cmd

python download.py

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

三、vscode + markdown all in one

  1. 安装 vscode
  2. vscode 的扩展安装 markdown all in one
    在这里插入图片描述
  3. vscode 打开下载的 md 文件
  4. 点击右上角的 预览 按钮,即可预览转换后的 md 文件
    在这里插入图片描述
  5. ctrl + shift + p,打开命令模式
  6. 输入 markdown ,使用这个命令,可以将md转为 html 格式
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

Java 大视界 -- 企业数字化转型中的 Java 大数据战略与实践(93)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

交换路由——控制VLAN之间通信

项目 最近一段时间,A公司发现划分VLAN之后,网速提高很多,发生拥堵的情况消失了.但是,部门之间不能互联,也给办公室带来不便.公司要求项目实施各VLAN内主机互通。 部门 VLAN 名称 端口范围 网络ID 计算机 市场部 VLAN 10 shichang f0/1-f/010 192.168.10.0/24 pc0,pc…

一文读懂Docker之Docker Compose

目录 一、Docker Compose简介 二、Docker Compose的安装和基本使用 1、Docker Compose的安装 步骤一、下载docker-compose 步骤二、新增可执行权限 步骤三、查看是否安装成功 2、Docker Compose的基本使用 (1)、docker-compose up (2)、docker-compose ps (3)、docke…

拯救者电脑在重装系统之后电源计划丢失Fn+Q切换不了模式怎么恢复?

参考联想知识库的一下链接: https://iknow.lenovo.com.cn/detail/196192 其中下载的解压文件后的文件需要复制粘贴到D盘的根目录下,再来运行文件。若在生成的log文件中看到导入成功以及控制面板中看到已添加的电源计划即可 如果还是无效可是试试以下的…

让编程变成一种享受-明基RD320U显示器

引言 作为一名有着多年JAVA开发经验的从业者,在工作过程中,显示器的重要性不言而喻。它不仅是我们与代码交互的窗口,更是影响工作效率和体验的关键因素。在多年的编程生涯中,我遇到过各种各样的问题。比如,在进行代码…

React入门案例-Hello React案例

需求 为了演练React,我们可以提出一个小的需求: 在界面显示一个文本:Hello World 点击下方的一个按钮,点击后文本改变为Hello React 但是,我们使用React实现之前,先使用原生代码来实现,这样更加方便大家对比React和原生: 当然,你也可以使用jQuery和Vue来实现,对它…

【SpringBoot】SpringBoot中分页插件(PageHelper)的使用

目录 1.分页概念 2.原生写法 3.PageHelper插件分页查询 3.1 介绍 3.2?使用 3.3 Page对象和PageInf对象 1.分页概念 用户查询的数据不可能一次性全部展示给用户(如果用户有一万条数据呢),而是分页展示给用户,这就是分页查询…

解锁 AIoT 无限可能,乐鑫邀您共赴 Embedded World 2025

2025 年 3 月 11-13 日,全球规模最大的嵌入式展览会——Embedded World 2025 将在德国纽伦堡盛大开幕。作为物联网和嵌入式技术领域的领先企业,乐鑫信息科技 (688018.SH) 将展示在 AI LLM、HMI、双频 Wi-Fi 6、低功耗 MCU 和 Matter 等领域的最新技术及解…

学习数据结构(11)二叉树(堆)下

1.堆的概念 如果有⼀个集合 K {k0&#xff0c;k1&#xff0c;k2&#xff0c;...&#xff0c;k(n-1)} &#xff0c;把它的所有元素按完全二叉树的形式存储在一个一维数组中&#xff0c;并满足&#xff1a;K(i)<2*i1且K(i)<2*i2&#xff08;K(i)>2*i1且K(i)>2*i2&a…

​实在智能与宇树科技、云深科技一同获评浙江省“人工智能服务商”、 “数智优品”​等荣誉

近日&#xff0c;浙江省经信厅正式公布《2024 年浙江省人工智能应用场景、应用标杆企业、人工智能服务商及 “数智优品” 名单》。 实在智能获评浙江省“人工智能服务商”&#xff0c;核心产品 “实在 Agent 智能体” 入选 “数智优品”。一同获此殊荣的还有宇树科技、云深处科…

Redis7——基础篇(五)

前言&#xff1a;此篇文章系本人学习过程中记录下来的笔记&#xff0c;里面难免会有不少欠缺的地方&#xff0c;诚心期待大家多多给予指教。 基础篇&#xff1a; Redis&#xff08;一&#xff09;Redis&#xff08;二&#xff09;Redis&#xff08;三&#xff09;Redis&#x…

矿用机车移动逆变电源设计(论文+源码)

1总体方案设计 本课题为矿用机车移动逆变电源的硬件电路设计&#xff0c;其整个架构如图2.1所示包括了:380V三相交流电&#xff0c;逆变电路&#xff0c;高频变压器&#xff0c;24V直流输出&#xff0c;控制电路&#xff0c;驱动电路&#xff0c;保护电路等等。 在工作原理上&…

深入浅出:0 - 1 背包问题的滚动数组解法

目录 一、引言二、0 - 1 背包问题概述2.1 问题定义2.2 具体示例 三、动态规划与滚动数组思路3.1 二维动态规划思路3.2 滚动数组优化思路 四、具体分析全过程4.1 初始化 dp 数组4.2 考虑物品 0&#xff08;重量为 1&#xff0c;价值为 15&#xff09;4.2.1 当 j 44.2.2 当 j 3…

spring学习(spring容器、加载配置文件方式、获取bean的方式)

目录 一、加载spring配置文件的几种方式。 &#xff08;0&#xff09;工程文件初始化。 &#xff08;1&#xff09;加载类路径下的配置文件。&#xff08;常见&#xff09; &#xff08;2&#xff09;加载文件绝对路径的配置文件。 &#xff08;3&#xff09;加载多个配置文件。…

DeepSeek-R1论文阅读及蒸馏模型部署

DeepSeek-R1论文阅读及蒸馏模型部署 文章目录 DeepSeek-R1论文阅读及蒸馏模型部署摘要Abstract一、DeepSeek-R1论文1. 论文摘要2. 引言3. DeepSeek-R1-Zero的方法3.1 强化学习算法3.2 奖励建模3.3 训练模版3.4 DeepSeek-R1-Zero的性能、自进化过程和顿悟时刻 4. DeepSeek-R1&am…

华为动态路由-OSPF-骨干区

华为动态路由-OSPF-骨干区 一、OSPF简介 1、OSPF概述 OSPF是一种开放式的、基于链路状态的内部网关协议&#xff08;IGP&#xff09;&#xff0c;用于在自治系统内部进行路由选择和通信。 OSPF是互联网工程任务组&#xff08;IETF&#xff09;定义的标准之一&#xff0c;被广…

RocketMQ - 常见问题

RocketMQ常见问题 文章目录 RocketMQ常见问题一&#xff1a;消息幂等问题1&#xff1a;什么是消费幂等2&#xff1a;消息重复的场景分析2.1&#xff1a;发送时消息重复2.2&#xff1a;消费时消息重复2.3&#xff1a;Rebalance时消息重复 3&#xff1a;通用解决方案3.1&#xff…

MySQL登录问题总结

不管何种数据库&#xff0c;使用的第一步都是先登录。 MySQL命令行登录语句&#xff1a;mysql -u username -P port -p -D database_name 登录MySQL的报错一般从报错信息都能得到反馈&#xff0c;常见报错原因分析如下&#xff0c;实例中的以test用户为例&#xff0c;登录环境为…

《千恋万花》无广版手游安卓苹果免费下载直装版

自取https://pan.xunlei.com/s/VOJS77k8NDrVawqcOerQln2lA1?pwdn6k8 《千恋万花》&#xff1a;柚子社的和风恋爱杰作 《千恋万花》&#xff08;Senren * Banka&#xff09;是由日本知名美少女游戏品牌柚子社&#xff08;Yuzusoft&#xff09;于2016年推出的一款和风恋爱题材…

【部署优化篇三】《DeepSeek边缘计算实战:把目标检测模型塞进树莓派,让AI在巴掌大的设备上“开天眼“》

“谁说只有超级计算机才能跑AI?今天咱们就要在树莓派上玩转DeepSeek目标检测,让这个巴掌大的小盒子变成会‘看’世界的智能终端!” 本文手把手教你从零开始,把最潮的目标检测模型塞进树莓派。全程高能预警,建议准备好你的树莓派4B/5和散热风扇,咱们这就开启边缘计算的魔法…