如何用Python抓取HTML片段并提取指定文本内容
HTML文本提取解决方案
不要用切片提取,这种方式依赖文本固定位置,换页面后极易失效,推荐基于BeautifulSoup的结构化提取方法:
- 定位目标div后直接提取纯文本:
rating_div = soup.find('div', {'class': 'extra-list customer-ratings'}) if rating_div: # 提取并清理文本(去除多余空格、换行) target_text = rating_div.get_text(strip=True) print(target_text) # 输出:2 and a half stars, 4688 Ratings - 如需拆分星级和评分数量,可进一步处理:
if rating_div: target_text = rating_div.get_text(strip=True) stars_part, ratings_part = target_text.split(',', 1) print(stars_part.strip()) # 输出:2 and a half stars print(ratings_part.strip()) # 输出:4688 Ratings - 若目标文本是div下的特定子元素(比如
<span>标签),可精准定位子元素后提取:rating_span = soup.find('div', {'class': 'extra-list customer-ratings'}).find('span') if rating_span: print(rating_span.get_text(strip=True))
- 定位目标div后直接提取纯文本:
核心逻辑是基于HTML元素结构提取,而非依赖文本位置,只要页面的元素class或层级结构不变,更换HTML文件后依然能正常提取。
内容的提问来源于stack exchange,提问作者JMHA1997
相关产品推荐
相关产品推荐

