20214335 实验四《Python程序设计》报告
课程:《Python程序设计》
班级: 2143
姓名: 李佳俊
学号:20214335
实验教师:王志强
实验日期:2022年5月25日
必修/选修: 公选课
一.实验内容
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
·爬取虎扑上NBA球星图片保存
二.实验过程及结果
源代码:
import requests as rq import json import time import os count = 1 #dao'ku def crawl(page): global count if not os.path.exists('nba'): os.mkdir('nba') url = 'https://image.baidu.com/search/acjson?' header = { # 'Referer': 'https://image.baidu.com/search/index?ct=201326592&cl=2&st=-1&lm=-1&nc=1&ie=utf-8&tn=baiduimage&ipn=r&rps=1&pv=&fm=rs4&word', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36' } param = { "tn": "resultjson_com", "logid": "11007362803069082764", "ipn": "rj", "ct": "201326592", "is": "", "fp": "result", "queryWord": "NBA", "cl": "2", "lm": "-1", "ie": "utf-8", "oe": "utf-8", "adpicid": "", "st": "-1", "z": "", "ic": "", "hd": "", "latest": "", "copyright": "", "word": "NBA", "s": "", "se": "", "tab": "", "width": "", "height": "", "face": "0", "istype": "2", "qc": "", "nc": "1", "fr": "", "expermode": "", "force": "", "pn": page, "rn": "30", "gsm": "1e", "1615565977798": "", } response = rq.get(url, headers=header, params=param) result = response.text # print(response.status_code) j = json.loads(result) # print(j) img_list = [] for i in j['data']: if 'thumbURL' in i: # print(i['thumbURL']) img_list.append(i['thumbURL']) # print(len(img_list)) for n in img_list: r = rq.get(n, headers=header) with open(f'nba/{count}.jpg', 'wb') as f: f.write(r.content) count += 1 if __name__ == '__main__': for i in range(30, 601, 30): t1 = time.time() crawl(i) t2 = time.time() t = t2 - t1 print('page {0} is over!!! 耗时{1:.2f}秒!'.format(i//30, t))
运行结果:
保存的图片:
在华为云上运行:
1)打开服务器(之前已购买设置好)
2)将文件上传至Win scp
3)在putty上运行
保存在服务器中的图片
三.对python全课总结与体会
首先非常感谢老师的付出,在课上幽默风趣、尽心尽力地教授python的课程,几乎每一行代码都是亲自打出来,课间也在解决同学们的问题。
其次,我很喜欢编程。我选择python这门选修课的初衷是为了一个大创项目,可是学期中项目取消了,但是我却发现了编程的乐趣,c语言和python两种语言也有相同的思路,相比于双重压力我觉得更多是相辅相成。作为偏远地区的学生,我对于电脑和编程一点基础也没有,学起来也很吃力,不像其他同学在大学之前就有基础或者进行过相关的思维训练。
这个学期我从搭建python环境开始就一直在求助同学,各种实验也是磕磕绊绊的完成,但最终还是学会了一些python的基础用法,字符串、元组、字典、列表、socket交互、爬虫等等。一次次实验中我遇到了特别多的困难,最终也是靠上网查阅资料,看书和求助同学完成了,也有了自己的猜数游戏、计算器和爬虫程序,这些都是我在python路上的路标,是进步的证明,但是由于基础薄弱,我很难独立面对空的编程框再不查询资料的情况下写出我想要的程序,因此需要强化的地方还非常多。一周三节的选修课对于编程来说还是太短,我需要利用更多时间来巩固我的基础知识和做更多的实战项目,一学期的课程结束了并不代表编程的学习就结束了,我认为我的编程能力还停留在入门甚至还要更弱,很开心能学到python的这么多的知识。我相信这学期学习的知识以后一定能帮到我。
对python课程的意见和建议:
王老师在课堂上有许多的内容,课时也比较长,在课堂上实时编程的代码可以同步到云班课或者微信群会更好
作为零基础的学生感觉老师讲课时一些细节的点缺乏老师的解释会让我陷入困难从而跟不上老师的进度比如一行代码中有一个用法我不知道时做什么的(能有什么效果)就导致后面的一系列代码理解很困难。