
爬虫,一个静态网站,里面的我画红色线遮盖的是文本内容,请求页面信息很简单,我想要把里面每句的文本内容拿出来,因为主文中没有标签,所不知道怎么单独拿出来,处理数据只是能把整个大盒子里的文本内容拿下来,不能把主文内容单独摘下来.,谢谢解答

爬虫,一个静态网站,里面的我画红色线遮盖的是文本内容,请求页面信息很简单,我想要把里面每句的文本内容拿出来,因为主文中没有标签,所不知道怎么单独拿出来,处理数据只是能把整个大盒子里的文本内容拿下来,不能把主文内容单独摘下来.,谢谢解答
关注参考通义千问和郭老师的小迷弟雅思莫了-编写提供,主要是为了帮助您快速解决问题,如下回答,您可以参考下,如有问题,评论区留言。
处理一个静态网站中没有特定标签包裹的主文内容时,确实需要更精细的方法来提取所需文本。如果整个主文部分没有结构化的HTML标签加以区分,可以尝试以下几种方法:
XPath 或 CSS 选择器:尽管主文可能没有明显标签,但可以通过分析页面结构找到规律,比如利用周围的固定元素作为参考,或者通过文本位置、行间距等间接方式定位。然后使用 lxml 库中的 XPath 或 BeautifulSoup 库中的 CSS 选择器选取主文区域内的文本。
例如,如果有规律可循,可以尝试抽取某个 <div> 或 <p> 标签内的所有非空白文本,不包含子标签(如脚注、引用等):
from bs4 import BeautifulSoup
# 假设response.text是网页源代码
soup = BeautifulSoup(response.text, 'html.parser')
main_text = [p.get_text().strip() for p in soup.select('#main-content > p:not(.footnote)')]
文本节点筛选:
text_list = response.xpath('//*[not(self::script or self::style)]/text()[normalize-space()]').getall()
main_text = ' '.join(text_list)
然后根据文本之间的空行、特殊字符或其他特征进一步分割出主文内容。正则表达式匹配:
基于自然语言处理 (NLP):
手动规则制定:
总之,关键在于理解目标网站的布局和内容特点,以便准确地定位和提取主文内容。对于复杂的场景,可能需要结合多种策略来解决问题。