20214335李佳俊 实验四《Python程序设计》报告

2022/5/30 5:19:52

本文主要是介绍20214335李佳俊 实验四《Python程序设计》报告,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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))

运行结果:
image
保存的图片:
image

在华为云上运行:
1)打开服务器(之前已购买设置好)
image
2)将文件上传至Win scp
image
3)在putty上运行
image
保存在服务器中的图片
image

三.对python全课总结与体会
首先非常感谢老师的付出,在课上幽默风趣、尽心尽力地教授python的课程,几乎每一行代码都是亲自打出来,课间也在解决同学们的问题。
其次,我很喜欢编程。我选择python这门选修课的初衷是为了一个大创项目,可是学期中项目取消了,但是我却发现了编程的乐趣,c语言和python两种语言也有相同的思路,相比于双重压力我觉得更多是相辅相成。作为偏远地区的学生,我对于电脑和编程一点基础也没有,学起来也很吃力,不像其他同学在大学之前就有基础或者进行过相关的思维训练。
这个学期我从搭建python环境开始就一直在求助同学,各种实验也是磕磕绊绊的完成,但最终还是学会了一些python的基础用法,字符串、元组、字典、列表、socket交互、爬虫等等。一次次实验中我遇到了特别多的困难,最终也是靠上网查阅资料,看书和求助同学完成了,也有了自己的猜数游戏、计算器和爬虫程序,这些都是我在python路上的路标,是进步的证明,但是由于基础薄弱,我很难独立面对空的编程框再不查询资料的情况下写出我想要的程序,因此需要强化的地方还非常多。一周三节的选修课对于编程来说还是太短,我需要利用更多时间来巩固我的基础知识和做更多的实战项目,一学期的课程结束了并不代表编程的学习就结束了,我认为我的编程能力还停留在入门甚至还要更弱,很开心能学到python的这么多的知识。我相信这学期学习的知识以后一定能帮到我。

对python课程的意见和建议:
王老师在课堂上有许多的内容,课时也比较长,在课堂上实时编程的代码可以同步到云班课或者微信群会更好
作为零基础的学生感觉老师讲课时一些细节的点缺乏老师的解释会让我陷入困难从而跟不上老师的进度比如一行代码中有一个用法我不知道时做什么的(能有什么效果)就导致后面的一系列代码理解很困难。



这篇关于20214335李佳俊 实验四《Python程序设计》报告的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程