首页 > 解决方案 > 如何使用 beatifulsoup 从 lxml 数据字符串中过滤出带有空格的正确单词

问题描述

嗨,guyz,我正在处理包含大量 html 数据的字符串(在单个字符串中)

from bs4 import BeautifulSoup
import requests
import bs4
url = "any randome url"
html = requests.get(url).text
soup = BeautifulSoup(html,'lxml')
web_page=soup.get_text().strip()
print(web_page.lower())

并且一些单词正在输出中,例如

conditionstravel对于conditions&travel

vaccinationstreatment对于vaccination&treatment

网页正在抓取是正确的,但这不是预期的,

bcoz 一些标签以文本结尾,conditions而下一个标签以文本开头,travels这就是它出现的原因conditionstravel

在这里,我愿意一个一个地抓取网页标签并将其设置为 web_page_data_list 那么有没有办法像上面一样用单独的状态来抓取所有标签文本

问题是我们不能给出特定的字典词,因为这可能是用漂亮的汤或任何其他包装将有助于正确提取它。?

标签: pythonweb-scrapingbeautifulsouplxml

解决方案


在方法中使用separator=' '参数。.get_text()您还可以提供strip=True自动去除每个分隔单词的空白字符。

例如:

import bs4
from bs4 import BeautifulSoup

txt = '''<div>Hello<span>World</span></div>'''

soup = BeautifulSoup(txt, 'html.parser')
web_page=soup.get_text(strip=True, separator=' ')
print(web_page.lower())
print(bs4.__version__)

印刷:

hello world
4.9.1

推荐阅读