如何在抓取后删除 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']
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']