美文网首页
从网络和硬盘访问文本

从网络和硬盘访问文本

作者: 青椒rose炒饭 | 来源:发表于2019-06-28 15:18 被阅读0次

电子书

比较坑,原始版本的urllib之下直接就有urlopen,但是我的是新版本找不到,需要使用urllib.request才有urlopen,然后就是例子中古藤语料库的2554这篇文章没有,即使是使用浏览器访问也是会出404错误的,最后自己整了一个网络的文本。
from urllib.request import urlopen
url = "http://www.gutenberg.org/cache/epub/420/pg420.txt"
raw = urlopen(url).read()
print(type(raw))

处理html

正常情况如果不是网站限制爬虫,以及url写错都是能访问的,我测试的时候就遇到了返回的内容输出是一些编码。竟然没有给我显示为字符,直接给我显示编码,你说气不气?在read()后面加上decode(‘utf-8’)能解决问题

按照书上的程序,会出现一个错误。

from urllib.request import urlopen
import nltk
from bs4 import BeautifulSoup
import gzip
url = "http://english.kmust.edu.cn/html/NewsfhfhfhEvents/2019/05/31/c9164096-7d86-4cd1-89ad-b58967ec7ef7.html"
html= urlopen(url).read().decode('utf-8')
data = nltk.clean_html(html)
print(data)

NotImplementedError: To remove HTML markup, use BeautifulSoup's get_text() function

遇到错误的时候看一眼就能解决了比百度快一丢丢。错误内容“没有实现错误:想去除html标签,用BeautifulSoup的get_text()方法”。所以代码需要修改成下面这样子:

from urllib.request import urlopen
import nltk
from bs4 import BeautifulSoup
import gzip
url = "http://english.kmust.edu.cn/html/NewsfhfhfhEvents/2019/05/31/c9164096-7d86-4cd1-89ad-b58967ec7ef7.html"
html= urlopen(url).read().decode('utf-8')
data = BeautifulSoup(html).getText()#修改
print(data)

下面的程序是对html的文本进行处理,去除网页中一些无关的内容,获取含有指定单词的句子。

from urllib.request import urlopen
import nltk
from bs4 import BeautifulSoup
import gzip
url = "https://www.crummy.com"
html= urlopen(url).read().decode('utf-8')
data = BeautifulSoup(html).getText()

tokens = nltk.tokenize.word_tokenize(data)
#去除一些无关内容,网站导航等
text = nltk.Text(tokens)
#这个貌似没有什么用
print(text)
#找文本中和具有is的句子
text = text.concordance('is')
print(text)

其中使用的concordance()并不是字符串的方法。是nltk.Text的方法,参数必须是切分后的字符串不否则是会查找失败的。


查找结果

读取文件

其中的document.txt是我在pycharm里面新建的,读取的时候注意处理乱码问题。

import nltk
#读取文件,指定编码为utf-8避免出现编码错误导致文件打不开
f = open("document.txt",encoding="utf-8")
#输出文件内容
print(f.read())
#约定读取到换行就结束,逐行读取
print("------------------------------------------------------------------")
f = open("document.txt","rU",encoding="utf-8")
for line in f:
    print(line)

print("-------------------------------------------------------------------")
print(nltk.corpus.gutenberg.fileids())
#获取文本austen-emma所在的文件夹,有了文件路径就能使用open函数打开了
path = nltk.data.find('corpora/gutenberg/austen-emma.txt')
print(path)

捕获用户的输入

input(“提示文本”)

NLP的流程

感觉也没啥说的,哈哈


NLP流程

相关文章

  • 从网络和硬盘访问文本

    电子书 比较坑,原始版本的urllib之下直接就有urlopen,但是我的是新版本找不到,需要使用urllib.r...

  • Java中的IO和流

    I/O和流 I/O: input/output 从读写设备,包括硬盘文件,内存,键盘输入,屏幕输出,访问网络 目的...

  • PHP网络编程(与网络互联)

    一、 访问其他网站 ① 直接以类似于访问自己硬盘上一个文本文件的方式来访问其他网站: fopen('http://...

  • 变量、数据的存储——C语言基础

    内存和硬盘的区别: 内存(RAM):①:掉电则数据丢失 ②:随机访问 ③:访问速度快 硬盘(ROM):①:掉电后数...

  • 访问硬盘

    硬盘读写的基本单位是扇区。 从硬盘读取数据的模式 CHS 模式,向硬盘控制器分别发送磁头号、柱面号和扇区号(扇区在...

  • 网络:TCP/IP协议总结

    标签: 网络 1、TCP/IP:TCP/IP协议集包括应用层,传输层,网络层,网络访问层。 应用层协议:超文本传输...

  • TCP。HTTP。协议。

    HTTP(超文本传输协议):移动端和PC端,访问远程的网络资源经常使用HTTP协议。 一,HTTP的作用 1.规定...

  • Android StrictMode Use

    Policy 策略 penalty 惩罚可以在主线程中检测硬盘和网络相关的操作.将硬盘读写操作和网络相关操作挪...

  • Google果然正积极准备重返中国

    编辑尝试访问google.cn发现,除了翻译和地图可以正常访问外,搜索、云端硬盘、相册等功能仍然无法直接访问。虽然...

  • Cookie & Session

    1. Cookie简介 Cookie是能够让网站服务器把少量文本数据存储到客户端的硬盘、内存,或是从客户端的硬盘、...

网友评论

      本文标题:从网络和硬盘访问文本

      本文链接:https://www.haomeiwen.com/subject/wolscctx.html