python爬虫爬取数据问题

我试着爬取一个网站的数据时,爬取的标题如下

img


我想要这个标题title,但是提取出来的内容含有html标签

img

广州&ldquo;1+9&rdquo;科技创新与<em></em><em></em>政策解读(七)&mdash;&mdash;产业领军<em></em><em></em>集聚工程政策

想问问有没有什么好的办法可以删去这些个html标签

试过使用正则匹配汉字,但是有些符号比如【】会丢失,且效率不高

使用BeautifulSoup库, pip install beautifulsoup4

from bs4 import BeautifulSoup

html_text = '广州&ldquo;1+9&rdquo;科技创新与<em></em><em></em>政策解读(七)&mdash;&mdash;产业领军<em></em><em></em>集聚工程政策'
soup = BeautifulSoup(html_text, 'html.parser')
text_without_tags = soup.get_text()
print(text_without_tags)
# 广州“1+9”科技创新与人才政策解读(七)——产业领军人才集聚工程政策

【以下回答由 GPT 生成】

我建议使用Python的BeautifulSoup库来处理HTML标签并提取纯文本的标题。以下是具体的解决方案:

  1. 首先,确保你已经安装了BeautifulSoup库。你可以使用以下命令来安装:
pip install beautifulsoup4
  1. 导入BeautifulSoup库和re库:
from bs4 import BeautifulSoup
import re
  1. 创建一个BeautifulSoup对象,将网页内容放入该对象中:
html = '''
广州<span class="hljs-symbol">&amp;ldquo;</span>1&#43;9<span class="hljs-symbol">&amp;rdquo;</span>科技创新与<span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>人<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>才<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span>政策解读&#xff08;七&#xff09;<span class="hljs-symbol">&amp;mdash;</span><span class="hljs-symbol">&amp;mdash;</span>产业领军<span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>人<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>才<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span>集聚工程政策
'''
soup = BeautifulSoup(html, 'html.parser')
  1. 使用get_text()方法获取纯文本的标题:
text = soup.get_text()
print(text)

代码展示:

from bs4 import BeautifulSoup

html = '''
广州<span class="hljs-symbol">&amp;ldquo;</span>1&#43;9<span class="hljs-symbol">&amp;rdquo;</span>科技创新与<span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>人<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>才<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span>政策解读&#xff08;七&#xff09;<span class="hljs-symbol">&amp;mdash;</span><span class="hljs-symbol">&amp;mdash;</span>产业领军<span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>人<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>才<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span>集聚工程政策
'''
soup = BeautifulSoup(html, 'html.parser')
text = soup.get_text()
print(text)

预期输出:

广州1+9科技创新与人才政策解读(七)—产业领军人才集聚工程政策

这样,你就得到了不包含任何HTML标签的纯文本标题。BeautifulSoup库会自动处理各种HTML标签,并将其替换为适当的文本内容。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^