Python实现网页抓取与jieba分词处理

云舒
云舒
发布时间:2026-10-11 | 4人浏览过
原创

本文介绍如何使用Python的requests和BeautifulSoup库抓取指定网页的正文内容,并利用jieba库对提取的文本进行分词处理。通过具体代码示例,展示了从获取HTML、解析DOM、提取文本到写入文件及分词输出的完整流程,适用于简单的网页内容分析与预处理场景。

实现原理与步骤

该功能主要依赖三个核心组件:网络请求库 requests、HTML解析库 BeautifulSoup 以及中文分词工具 jieba。整体流程分为网页内容获取、正文提取、本地存储和分词处理四个阶段。

1. 获取网页内容

首先使用 requests.get() 向目标URL发起GET请求。由于部分网页编码可能不一致,需显式设置 res.encoding = 'utf-8' 以确保后续文本处理正常。获取到的原始HTML字符串存储在 content 变量中。

2. 解析并提取正文

利用 BeautifulSoup 将HTML字符串解析为文档对象模型(DOM)。通过 soup.find(id='main_content') 定位到包含正文的特定 div 节点。遍历该节点下的所有子元素(如 p、h1 等),提取纯文本内容(get_text())并写入本地文件 news.txt。

3. 分词处理

使用 jieba.cut() 对提取的文本进行分词。代码演示了两种模式:

  • 全模式(cut_all=True):尝试找出所有可能的词语,速度快但存在冗余。
  • 精确模式(cut_all=False):将句子最精确地切开,适合文本分析,也是默认模式。

最后,读取 news.txt 中的每一行文本,应用精确模式分词,并将分词结果以 / 分隔写入新文件 cut_news.txt。

代码实现

以下是完整的Python实现代码。请注意,实际使用时需确保已安装 requests、beautifulsoup4 和 jieba 库。

import requests
from bs4 import BeautifulSoup
import jieba

# 1. 获取网页HTML
url = "http://finance.ifeng.com/a/20180328/16049779_0.shtml"
res = requests.get(url)
res.encoding = 'utf-8'
content = res.text

# 2. 使用BeautifulSoup解析并提取正文
soup = BeautifulSoup(content, 'html.parser')
div = soup.find(id='main_content')

# 3. 将提取的文本写入临时文件
filename = 'news.txt'
with open(filename, 'w', encoding='utf-8') as file_object:
    for line in div.findChildren():
        file_object.write(line.get_text() + '\n')

# 4. 演示jieba分词功能(可选测试)
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))

seg_list = jieba.cut("他来到了网易杭研大厦")
print(", ".join(seg_list))

# 5. 对提取的正文文件进行分词并保存结果
with open(filename, 'r', encoding='utf-8') as file_object:
    with open('cut_news.txt', 'w', encoding='utf-8') as file_cut_object:
        for line in file_object.readlines():
            seg_list = jieba.cut(line, cut_all=False)
            file_cut_object.write('/'.join(seg_list))

注意事项

  • 依赖安装:运行前请通过 pip install requests beautifulsoup4 jieba 安装必要库。
  • 目标网站结构:代码中硬编码了 id='main_content',若目标网页结构变更,需调整选择器。
  • 编码问题:确保文件读写时编码一致(如 utf-8),避免中文乱码。
  • 法律合规:抓取网页内容请遵守目标网站的使用条款及相关法律法规,避免高频请求导致服务器压力或法律风险。

以上就是Python实现网页抓取与jieba分词处理的详细内容,更多关于Python网络爬虫与文本处理的技术资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表