查看原文
其他

第十八次课加讲了一个爬取整部红楼梦的代码

陈鸥辉 信息科技时代 2024-03-15
import requestsfrom bs4 import BeautifulSoup#第十七次课:数据清洗#红楼梦小说网址:https://www.gdwxcn.com/gdxs/hlm/xs=''#爬取整部红楼梦for i in range(2164,2044,-1): url = 'https://www.gdwxcn.com/gdxs/hlm/'+str(i)+'.html' # 设置爬取红楼梦第一回 hd = {"User-agent": "*"} # 设置请求方式 r = requests.get(url,headers=hd)#向服务器发送请求 print('网页返回的编码:',r.encoding)#网页返回的编码方式 #编码方式:ISO-8859-1、utf-8、gbk,出现乱码才解码,根据返回的编码进行编码解码 r = r.text.encode('ISO-8859-1').decode('gbk', 'ignore') # 编码解码 #print(r) soup = BeautifulSoup(r, "html.parser") print(soup.title.text)#可以直接输出标签标题内容 t=soup.select('p')#清洗指定标签的数据 for r in t: xs+=r.text+'\n'with open('红楼梦.txt', 'w', encoding='utf-8')as f: # 输出并保存到记事本文件中 print(xs)#控制台输出 f.write(xs)#写入文本文件#ftp://172.16.20.46 2117 交程序+词云图的图片

    学生提交的是他们自己爬取的小说的词云图,为什么我还要爬整部红楼梦呢?是因为整部红楼梦才符合学生的认知,他们都知道宝玉才是红楼梦的主要人物,所以整部红楼梦的分析词云图更有说服力。

    在讲解这个代码时,有个别学生跟着改写自己的程序,并且出现了各种问题来问我,这一点是比较头疼的,不过我还是将这个代码简单地跟学生讲解了一下。让学生知道我们不是一次只爬一个网页,而是可以一次爬很多个网页。

    以下为学生提交的词云图:


继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存