php用正则表达抓取网页中文章(菜鸟教程正则表达式浅谈正则表达式Pythonjieba库博客园的实例:pythonjieba )

优采云 发布时间: 2021-11-16 07:05

  php用正则表达抓取网页中文章(菜鸟教程正则表达式浅谈正则表达式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()

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线