相信有很多同学使用bs4 来对页面进行处理 都有使用过。bs4 使用起来还是比较方便的,但是有的时候一些比较特殊的需求 就要查查文档,多动手试验。

在 BeautifulSoup 中有的时候获取了一个结点 tag , 这个时候不想要里面的一些特殊的tag 比如 a 标签 。

来看一个例子

from bs4 import BeautifulSoup
html="""<html>
		<meta charset="utf-8">
	</head>
		<div id='main'>
			<p>this is one pargraph</p>
			<a href="http://example.com/">I linked to <i>example.com</i></a>
			<p>this is one pargraph</p>
	</body>
</html>
soup = BeautifulSoup(html,'lxml')

比如这里我想 获取 id=main 的元素,然后获取里面的文字 . 但是我不想获取 a 标签的内容,以及a 标签里面的内容。即a 标签的子标签

soup.find(id='main').text.splitlines()

这样直接取值可能会有一个问题, 会把a标签的内容也取了出来。

现在我不想取出a 标签的内容 只想要两个p标签的内容 .

可以通过 tag.decompose() 方法来剔除不想要的标签, 通过find 或者find_all 来找到tag 标签,然后删除即可。

# 查找a 标签 
tag = soup.find('a')
# 销毁 tag 标签 
tag.decompose()
soup.find(id='main').text.splitlines()
# 自定义分隔符,以及 strip去除空格
soup.find(id='main').get_text(separator='####',strip=True).split('####')

这里只是举一个例子,实际上如果只想取p 标签.

paras = soup.find_all('p')
for tag in paras:
    print(tag.text)

这里只是说明 tag.decompose() 方法,代表去除 tag 自身,可以通过 soup.find, soup.find_all() 找到tag 然后执行 tag.decompse() 方法进行删除tag

tag.decompose

分享快乐,留住感动. '2021-08-02 22:54:02' --frank I have a text like this:text = """TitleA long text........ a link """using pure Python, with no external module I want to have this:>>> print remove_tags(text)Title A long text..... a linkI ... XPath是XML路径语言,它是一种用来确定XML文档某部分位置的语言。 在python爬虫方面的学习,xpath至关重要,它与正则相比具有明显的优势。下面将介绍在pythonxpath的简单使用。 安装方法不必多说,与其他第三方库的安装方法一样,使用pip安装。 首先需要导入库 import lxml.html 接下来就是使用了,话不多说,上代码 # 使用方式介... 我正在使用beauthulsoup包解析数百个HTML文档。我的代码能够很好地解析整个文档。在我想根据条件删除所有表标记的内容。因为很少有表(根据HTML标记)实际上可能不是表,而是表显示的文本。如果一个表的内容有超过75%的字符作为数字,我想把它当作实际的表来处理并删除它,否则我会保留它。在我是Python新手,不知道如何才能只删除特定表的全部内容。在假设我的HTML文档是:100Hello ...         这里给大家分享一个怎么用Python爬取超链接的文字,并且能够去除字符“原“和前后空格、空行等等。这个代码不多,而且非常简单。我这里用的是Python3,版本不和的可以调整一下,这个代码还是很好理解的。        接下来我给大家分享爬取我的博客超链接文字的例子,先给大家逐步分析一下,这样有助于帮助大家的理解和学习。后面将会附上完整的代码。首先,一如既往的,开始就是简单的爬取网页... PageElement.extract() 方法将当前tag移除文档树,并作为方法结果返回:去除指定标签frombs4importBeautifulSoup#去除属性ul[s.extract()forsinsoup("ul")]#去除属性svg[s.extract()forsinsoup("svg")]#去除属性script[s.extract()forsinso... (1)实例化一个beautifulsoup对象,并且将页面源码数据加载到该对象 (2)通过调用beautifulsoup对象相关的属性或者方法进行标签定位和数据提取 3、bs环境安装 pip install bs4 pip install lxml 4、实例化beautifsoup对象 (1)导入模块: from bs4 import BeautifulS # 编码流程:> 1.指定url> 2.发起请求> 3.获取响应数据> 4.数据解析> 5.持久化存储# 数据解析分类:> 1.bs4> 2.正则> 3.xpath (\***)1 简介在之前的文章【Python 基础(一):入门必备知识】我们已经提到了:字符串是 Python 的一种数据类型,它可以通过单引号 '、双引号 "、三引号 ''' 或 ... pythonBs4这个包是用来解析网页源码的包,爬虫程序常用这个包解析爬取网页源码进行分析,今天主要介绍这个包的一些基本使用首先安装bs4: Pipinstall bs4创建beautifulsoup对象解析网页源码,首先创建beautifulsoup对象import requestsfrom bs4 importBeautifulSouphtml=requests.get('http://ww... from bs4 import BeautifulSoup soup = BeautifulSoup("<html>A Html Text</html>", "html.parser")   两个参数:第一个参数是要解析... doc('.article-t style').remove() 如上是:想要class为article里面的内容,但又不想要style标签的内容,就可以通过以上把style标签删除,然后再提取article下的所有内容。 另一种情况,含有完整的标签时: 试用了Beautifulsoup,的确是个神器。 在抓取到网页时,会出现很多不想要的内容,例如<script>标签,利用beautifulsoup可以很容易去掉。 -> soup = BeautifulSoup('<script>a</script>Hello World!<script>b</script>') -> [s.extract() for s in soup(‘script 1.在列表末尾添加×××.append(*元素*)2.在列表插入×××.insert(*location*,*元素*)3.在列表删除·1>deldel ×××[*location*]·2> pop()#弹出末尾元素 ×××.pop()#弹出任意位置元素 ×××.pop(*location*)·3> remove()#根据值删除元素 ×××.remove(*value*) from bs4 import BeautifulSoup soup = BeautifulSoup('<div>早上9点了</div>你好世界<div>世界和平</div>') info = ... <img width="147" height="52"src="http://127.0.0.1:80/admin/../upload/pimg1054_1.png" alt="" /> 怎么将img标签里边的 al... html_doc = """ &lt;html&gt;&lt;head&gt;&lt;title&gt;The Dormouse's story&lt;/title&gt;&lt;/head&gt; &lt;body&gt; &lt;p class="title"&gt;&lt;b&gt;Th