php用正则表达抓取网页中文章(菜鸟教程正则表达式浅谈正则表达式Pythonjieba库博客园的实例:pythonjieba )
优采云 发布时间: 2021-11-16 07:05php用正则表达抓取网页中文章(菜鸟教程正则表达式浅谈正则表达式Pythonjieba库博客园的实例:pythonjieba
)
数据采集和可视化分析
学科要求
目的:
熟悉数据采集方法和数据预处理方法。熟悉Python中常用的绘图方法。
实验内容:
用你的名字或*敏*感*词*创建一个新文件夹,并在文件夹中创建一个新的文本文件“111.txt”。
复制网页文章中的文字内容(网址因为某些原因打不出来,随便找一篇文章就可以了)”从网上复制到“111.txt”。
将“111.txt”文件的中文内容提取到“222.txt”文件中(使用re方法)。
使用jieba对提取的中文文档(222.txt)进行分割,统计出现频率最高的前100个文档。
使用 wordcloud 和 matplotlib.pyplot
方法 为“222.txt”中的分词创建分词云图,另存为“分词云图1.png”。
用“222.txt”中出现频率最高的前10个词做条形图,X轴对应10个词,y
轴对应每个词的频率值,保存为“条形图2.png”。
(附:有空的可以把实验内容的步骤(1)(2))换成爬取网页内容的操作。)
参考代码和实验结果:
(实验过程中代码和实验结果自行完成)
先学会将文本(中文)提取到txt文件中
一种提取TXT文本中指定内容的方法
Python 使用正则表达式提取文本中的特定内容
python re模块
自学网站:
蟒蛇自己的
博客园
Python正则表达式中re.S、re.M、re.I的作用
新手教程正则表达式
谈论正则表达式
Python jieba 库
博客园
例子:
python jieba库的基本使用
基于python中jieba包的详细介绍
代码(未完成)
import re
import pandas as pd
#简单打开同目录下的一个文件夹并输出到屏幕 header=None有也行
#1
# a=pd.read_csv('111.txt')
# print(a)
# 2
# a=pd.read_table('./111.txt')
# print(a)
# file1=codecs.open(r'B:\BaiduNetdiskDownload\coding2021\Python\2020416022\111.txt','r','gbk')
# list1=file1.readlines()
# str1=''.join(list1)
# str2=re.sub('\s','',str1)
# re1=',|。|!|“”|?'
# list2=re.split(re1,str2)
# file2=codecs.open(r'B:\BaiduNetdiskDownload\coding2021\Python\2020416022\222.txt','a+','gbk')
# for key in list2:
# if key:
# print (key+'\n')
# file2.write(key+'\n')
# file2.readlines()
fi = open("111.txt","r",encoding="utf-8")
fo = open("222.txt","w",encoding="utf-8")
wflag =False #写标记
newline = [] #创建一个新的列表
for line in fi : #按行读入文件,此时line的type是str
if " " in line: #重置写标记
wflag =False
if "。" in line: #检验是否到了要写入的内容
wflag = True
continue
if wflag == True:
K = list(line)
if len(K)>1: #去除文本中的空行
for i in K : #写入需要内容
newline.append(i)
strlist = "".join(newline) #合并列表元素
newlines = str(strlist) #list转化成str
for D in range(1,100): #删掉句中()
newlines = newlines.replace("({})".format(D),"")
for P in range(0,9): #删掉前面数值标题
for O in range(0,9):
for U in range(0, 9):
newlines = newlines.replace("{}.{}{}".format(P,O,U), "")
fo.write(newlines)
fo.close()
fi.close()