如何在抓取后删除 span 标签和 class 名称,而我只想使用 python 抓取文本

how to remove span tag and class name after scrapping whereas i want to scrape only text using python

for link in soup.findAll('li'):
    if "c-listing__authors-list" in str(link):
    # theAuthor = link.string
        theAuthor = str(link).replace("</p>","")
        theAuthor = theAuthor.split("</span>")[1]
        listAuthor.append(theAuthor)[Output][1]

此答案以 Microsoft (.Net) 为中心,但我希望它可以帮助您指明正确的方向。

我已经有一段时间没有创建爬虫了。但我认为如果你也知道你的 XPath 这是可能的,因为我记得能够将网页读入 HTMLDocument,使用 XPath 访问你需要的元素然后获取它的文本值。

尝试使用 get_text(strip=True) 来实现您的目标:

for e in soup.select('li span.c-listing__authors-list'):
    theAuthor = e.get_text(strip=True)

或在一行中获取列表:

theAuthor = [e.get_text(strip=True) for e in soup.select('li span.c-listing__authors-list')]
示例
from bs4 import BeautifulSoup
html=''' 
<ul>
<li><span class="c-listing__authors-list">a</span></li>
<li><span class="c-listing__authors-list">b</span></li>
<li><span>no list</span></li>
</ul>  
'''
soup = BeautifulSoup(html)

theAuthor = []
for e in soup.select('li span.c-listing__authors-list'):
    theAuthor.append(e.get_text(strip=True))
输出
['a', 'b']