python实现的读取网页并分词功能示例

yipeiwu_com7年前Python基础

本文实例讲述了python实现的读取网页并分词功能。分享给大家供大家参考,具体如下:

这里使用分词使用最流行的分词包jieba,参考:https://github.com/fxsjy/jieba

或点击此处本站下载jieba库。

代码:

import requests
from bs4 import BeautifulSoup
import jieba
# 获取html
url = "http://finance.ifeng.com/a/20180328/16049779_0.shtml"
res = requests.get(url)
res.encoding = 'utf-8'
content = res.text
# 添加至bs4
soup = BeautifulSoup(content, 'html.parser')
div = soup.find(id = 'main_content')
# 写入文件
filename = 'news.txt'
with open(filename,'w',encoding='utf-8') as file_object:
  # <p>标签的处理
  for line in div.findChildren():
    file_object.write(line.get_text()+'\n')
# 使用分词工具
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list)) # 全模式
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list)) # 精确模式
seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式
print(", ".join(seg_list))
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))

爬取结果:

分词结果:

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

相关文章

详解python中的 is 操作符

大家可以与Java中的 == 操作符相互印证一下,加深一下对引用和对象的理解。原问题: Python为什么直接运行和在命令行运行同样语句但结果却不同,他们的缓存机制不同吗? 其实...

Pycharm运行加载文本出现错误的解决方法

Pycharm运行加载文本出现错误的解决方法

Pycharm打开大文件的时候出现这个错误,根据提示以及百度知道,是因为IDEA对能关联的文件大小做了限制,主要是为了保护内存,默认值为2500kb。然后根据百度上的教程修改 修改bin...

Python使用matplotlib简单绘图示例

Python使用matplotlib简单绘图示例

本文实例讲述了Python使用matplotlib简单绘图。分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python2 """ Create...

python3.6根据m3u8下载mp4视频

python3.6根据m3u8下载mp4视频

需要下载某网站的视频,chrome浏览器按F12打开开发者模式,发现视频链接是以"blob:http"开头的链接,打开这个链接后找不到网页,网上查了下,找到了下载方法,在这里做个记录,如...

Python入门教程 超详细1小时学会Python

Python入门教程 超详细1小时学会Python

为什么使用Python    假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200.&nbs...