Python:使用readability-lxml 提取网页标题和主体内容

简介: Python:使用readability-lxml 提取网页标题和主体内容

github: https://github.com/buriy/python-readability

pypi: https://pypi.org/project/readability-lxml/

安装

$ pip install readability-lxml

代码示例

# -*- coding: utf-8 -*-


from readability import Document
import requests

url = "https://blog.csdn.net/mouday/article/details/94021769";
response = requests.get(url)
response.encoding = "utf-8"

doc = Document(response.text)

print(doc.title()) # 标题
print(doc.summary()) # 主体内容

尝试过几个网页后,发现部分网页可以正常提取主体内容,有些网站提取不正确

            </div>
目录
相关文章
|
JavaScript 前端开发
Vue3 + Vite批量导入模块 / 资源
Vue3 + Vite批量导入模块 / 资源
954 0
|
3月前
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
11月前
|
JavaScript 前端开发 API
浏览器节能机制导致Websocket断连的坑
浏览器的节能机制虽然有助于节省系统资源和延长电池寿命,但也可能导致WebSocket连接的不稳定性。通过保持活跃连接、实现自动重连机制和利用 `Page Visibility API`检测页面状态,开发者可以有效应对这些挑战,确保WebSocket连接的稳定性和可靠性。这些措施在实际项目中的应用,可以显著提升WebSocket通信的稳定性,提供更好的用户体验。
697 13
|
缓存 Java 数据库连接
Spring Boot奇迹时刻:@PostConstruct注解如何成为应用初始化的关键先生?
【8月更文挑战第29天】作为一名Java开发工程师,我一直对Spring Boot的便捷性和灵活性着迷。本文将深入探讨@PostConstruct注解在Spring Boot中的应用场景,展示其在资源加载、数据初始化及第三方库初始化等方面的作用。
399 0
|
云安全 安全 网络安全
云安全防护指南:防御DDoS攻击的几大有效方法
云安全防护指南:防御DDoS攻击的几大有效方法
654 0
|
机器学习/深度学习 人工智能 算法
程序员必知:VS2017动态链接库(.dll)的生成与使用
程序员必知:VS2017动态链接库(.dll)的生成与使用
1002 0
|
存储 JavaScript Python
word文档转成Markdown文档并在Typora免费版添加图床-----想想都很香
word文档转成Markdown文档并在Typora免费版添加图床-----想想都很香
784 0
|
监控 安全 Go
Golang深入浅出之-Channels基础:创建、发送与接收数据
【4月更文挑战第22天】Go语言的Channels是并发通信的核心,用于Goroutines间安全高效的数据交换。本文介绍了Channels的基础知识,包括创建(无缓冲和缓冲通道)、发送与接收数据,以及如何避免常见问题。创建通道使用`make(chan T)`,发送数据用`ch &lt;- value`,接收数据则相反。无缓冲通道需匹配的发送和接收操作,否则会阻塞。缓冲通道能暂存数据,但需注意缓冲区大小以防止死锁。关闭通道后不能发送,但能接收剩余数据,多值接收可检测通道状态。掌握这些概念和技巧,能提升Go语言并发编程的效率和稳定性。
206 1
|
SQL XML Java
Mybatis-Plus插件扩展MybatisX
Mybatis-Plus插件扩展MybatisX
332 0
|
SQL 关系型数据库 MySQL
MySQL in 太慢的 3 种优化方案
MySQL中的`eq_range_index_dive_limit`参数默认值为200,影响了IN查询的执行方式。当IN列表项少于这个值时,MySQL会使用扫描索引树(精确成本计算),而多于此值则使用索引统计(快速但可能不准)来分析查询成本。大量IN值可能导致性能下降。解决方案包括:1) 分批查询;2) 使用UNION ALL创建内存临时表;3) 创建实体表存储IN值并进行JOIN操作。注意,实体表需及时清理并避免反复插入删除导致性能下降。
2717 0