beautifulsoup实现文章截取和脚本攻击
引子:现在我们所写的所有高大上,炫酷的网页,在数据库中是如何存储的呢?其实数据库中存储的所有高大上的文章都是存的html,然后我们平时看的写的都是由于编辑器的原因,在编辑器内部做了转换,所以我们可以直接的书写文本,而不是去用html来进行文本的书写。
Beautiful Soup介绍官方文档
Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。
Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。
Beautiful Soup下载
下载的话我们推荐下载最新版的,Beautiful Soup4,直接在python中下载就好
Beautiful Soup使用
导入模块
from bs4 import BeautifulSoup
生成soup对象
soup = BeautifulSoup(content) # 这个里面放的是你想让处理的文本内容
获得处理后的文本内容
tags = soup.find_all()
和普通的文本内容的区别
[<html><body> </pre>]
多了上面两行,是将所有的文本内容放在了一个大列表中,然后文本内容比普通的文本内容要多,是因为他拿到了所有html文件包括直接用js写的吗?
获取所有的标签
for tag in tags: print(tag.name)
div <class 'str'>
h1 <class 'str'>
p <class 'str'>
p <class 'str'>
h2 <class 'str'>
div <class 'str'>
解决脚本攻击
for tag in tags: if tag.name == 'script': tag.decompose() # 这个是用来删除
实现文章简介的截取
desc = soup.text[0:150]
完成了文章html变成普通的文本,然后还解决了脚本攻击,其实他的功能远远比这个强大,后续再更!