20211112周子凯《Python程序设计》实验四报告

课程:        《Python程序设计》
班级:        2111
姓名:        周子凯
学号:        20211112
实验教师:  王志强
实验日期:  2022年5月30日
必修/选修: 公选课

 

1.实验内容:

爬取盗版网站笔趣阁上的凡人修仙传小说。

2.实验要求:

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
课代表和各小组负责人收集作业(源代码、视频、综合实践报告)

注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现。

批阅:注意本次实验不算做实验总分,前三个实验每个实验10分,累计30分。本次实践算入综合实践,打分为25分。
评分标准:
(1)程序能运行,功能丰富。(需求提交源代码,并建议录制程序运行的视频)10分
(2)综合实践报告,要体现实验分析、设计、实现过程、结果等信息,格式规范,逻辑清晰,结构合理。10分。
(3)在实践报告中,需要对全课进行总结,并写课程感想体会、意见和建议等。5分

(4)如果没有使用华为云服务(ECS或者MindSpore均可),本次实践扣10分。

注意:每个人的实验不能重复,课代表先统计大家做的内容并汇总,有重复的需要自行协商。

3.实验过程及结果

1.首先是引入所需要的库(requests和parsel)

 

 2.爬取想要的小说的目录,内容

 

 3.Pycharm上运行成果展示

 

 4.在ESC上进行运行

 

 下面是我的代码(已上传至码云)

# -*- coding: UTF-8 -*-
import requests
import parsel
url = "https://www.777zw.net/1/1429/"
response = requests.get(url)
responses = response.text.encode('iso-8859-1').decode('gbk')
print(responses)
selector = parsel.Selector(responses)
novel_name = selector.css('#info h1::text').get() #小说名
href = selector.css('#list dd a::attr(href)').getall() #小说章节
for link in href:
link_url = 'https://www.777zw.net/1/1429/' + link
response_1 = requests.get(link_url)
responses_1 = response_1.text.encode('iso-8859-1').decode('gbk')
selecter_1 = parsel.Selector(responses_1)
title_name = selecter_1.css('.bookname h1::text').get() #小说章节
content_list = selecter_1.css('#content::text').getall() #小说内容
content = '\n'.join(content_list)
break
# 保存
with open(novel_name + '.txt',mode = 'a',encoding = 'utf-8') as f:
f.write(title_name)
f.write('\n')
f.write(content)
f.write('\n')
# print(title_name)
print(novel_name)
print(content_list)
码云上的链接如下:
 

4.实验中遇到的问题和解决办法

问题1.无法下载需要的库,主要就是pip无法使用

问题1解决办法:在询问了度娘之后发现是自己的pip的版本太低了,在更新之后就可以去解决问题3了(无奈.jpg)

 

 问题2:文件无法在putty上运行

问题2解决办法:在文件头部添加# -*- coding: UTF-8 -*-

问题3:虽然更新了pip,但是还是没有完全解决问题,仍然下载不了库

问题3解决办法:在查询过后说是此时pip指向的是python3,需要建立一个软链接使pip指向python3

全课总结(感悟、思考等)

本学期我们首先初识了python,了解了python的发展历程、未来前景和优势 。接着在学习了输入输出后,我们学习了基本数据类型:整数类型,四种进制表示形式、浮点类型,字符串类型,单引号,双引号,都只能表示一行字符串,三单引号,形成的是多行字符串,但也可以当多行注释来使用。正向递增序号、反向递减序号,索引和切片[ : ],字符串的操作符,字符串处理函数,字符串处理”方法”字符串类型格式化等等。接着我们学习了python的分支语句(分支结构)if elif else 和循环语句(循环结构)while for continue break,然后我们又学习了集合与字典,集合间的运算。之后我们学习了函数,def return 初步体会了代码复用和封装的感觉。之后我们介绍了面向对象程序设计 三要素:封装、继承、多态 介绍了对象、类等知识。

有一说一,最开始的时候,我觉得选一门python并不会给自己增加多少压力,而且还能和C语言相互借鉴,就俩字——easy!直到真正接触之后,我才发现这是一件相当不容易的事,不仅在最开始的时候会将C语言的语句和Python课上学的东西搞混,还可能会因为在同一天内接收到大量从未接触过的知识而使大脑接近于死机。但是在自己真正开始做这个实验的时候,才会发现敲代码的痛苦过程,都是为了最后代码成功运行做的铺垫。

最后再多说一句,真的非常感谢风趣幽默的王老师,如果换做其他老师,我可能已经在Python课上睡得不省人事了(笑死.jpg)。除此之外也非常感谢王老师在Python课上为我的问题做出的解答,顺带提个小意见,因为在课上我除了听王老师开玩笑似的讲课之外,就是在拼尽全力地敲代码跟上老师的节奏,就对于我个人而言,我觉得节奏实在是太快了,我基本上很难跟上,如果能放慢点就更完美了(手动狗头.jpg)。

最后的最后,还是用一句代码来对我一学期的学习进行总结吧。

print("人生苦短,我用Python!")

 
posted @ 2022-05-31 17:23  20211112周子凯  阅读(127)  评论(0编辑  收藏  举报