python编程实验报告收获_20193323实验四《Python程序设计》实验报告

news/2024/7/23 19:26:14 标签: python编程实验报告收获

课程:《Python程序设计》

班级: 201933

姓名: 何世莽

学号:20193323

实验教师:王志强

实验日期:2020年6月6日

必修/选修: 公选课

1.实验内容

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。

2. 实验过程及结果

1.首先,我们先利用python的request模块来进行网站的访问。在网站信息中,我们要找到url,我们把他们的url找过了。

2.在过程中,我们利用request来获取他们的信息,在信息中,我们分析他们的信息,在信息中,我们可以发现在不同模块中存在这我们想要的信息。

3.我们利用语句在其字典中找到我们想要的信息。

4,之后,我们利用csv来写入文件,我们把他保存到我们想要的位置。

5,之后,我们来编程实现发送电子邮件的作用,在其过程中,我们利用smtplib,email.mime.text,email.mime.multipart语句来实现编程发邮件的过程。

6,我们先确定收发邮件的来去地址,之后我们在确定主题,之后我们有利用attach来添加附件,最终,我们可以用他们从而实现如何发送文件。

1939293-20200606203346766-51905695.png

1939293-20200606203421045-2066319299.png

1939293-20200606203738305-1332930742.png

码云链接:

https://gitee.com/he_shi_man/untitled5/blob/master/爬虫/天气.py

import _json

import requests

import csv

import time

import smtplib

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

key = "*************"

today_time = time.strftime('%Y-%m-%d', time.localtime())

print(today_time)

print("请输入要查询城市,输入退出结束:")

def get_weather_data():

title = ["城市", "更新时间", "天气情况", "体感温度", "温度", "相对湿度", "能见度"]

place = ''

with open('weather_today.csv', 'w', newline='')as f:

writer = csv.writer(f)

writer.writerow(title)

while place != "退出":

place = input("请输入要查询城市")

if place == "退出":

break

url = 'https://free-api.heweather.net/s6/weather/now?location={0}&key=c9df4c192acb4b4ea541b71179126ba0'.format(

place)

res = requests.get(url).json()

result = res['HeWeather6'][0]['now']

location = res['HeWeather6'][0]['basic']

time = res['HeWeather6'][0]['update']

city = location['admin_area'] + location['location']

cond = result['cond_txt']

fl = result['fl']

tmp = result['tmp']

hum = result['hum']

vis = result['vis']

time = time['loc']

writer.writerows([(city, time, cond, fl, tmp, hum, vis)])

send_email()

def send_email():

HOST = 'smtp.qq.com'

SUBJECT = '%s日的天气预报信息,请查收' % today_time

FROM = '2805193928@qq.com'

TO = '3382583124@qq.com'

message = MIMEMultipart('related')

message_html = MIMEText("%s日份天气预报到账了,请查收"% today_time, 'plain', 'utf-8')

message.attach(message_html)

message_xlsx = MIMEText(open('weather_today.csv', 'rb').read(), 'base64', 'utf-8')

message_xlsx['Content-Disposition'] = 'attachment;filename="today_weather.csv"'

message.attach(message_xlsx)

message['From'] = FROM

message['To'] = TO

message['Subject'] = SUBJECT

email_client = smtplib.SMTP_SSL(host='smtp.qq.com')

email_client.connect(HOST, '465')

result = email_client.login(FROM, '{0}'.format(key))

print(result)

email_client.sendmail(from_addr=FROM, to_addrs=TO, msg=message.as_string())

print("发送成功")

email_client.close()

get_weather_data()

3. 实验过程中遇到的问题和解决过程

问题1:在发送邮件时不能发送

问题1解决方案:其登录密码不是平时用的密码,而是那个网络验证码

问题2:再发送邮件是会出现很多问题

问题2解决方案:要利用好那几个模块,并了解他们的各个意义,这样才不会出现太多的错误,并且要小心编码的格式,否则会出现很多想不到的问题,二进制

是一个很好的解决办法

问题3:在我们利用url是我们要更改那个url,但不能直接更改,会出现错误

问题3解决方案:我们可以用format加占位符来解决这样的问题

问题4:在使用爬虫的过程中,信息会随时改变,可能不同时段信息不一样。

问题4解决方案:我们要结合网络,提取相应的信息

问题5:我们在使用模块时,不知道要怎么使用其格式。

问题5:我们可以用ctrl来看他们的提示信息,从而来改变他们的顺序

其他(感悟、思考等)

在python中,我们很大程度上要利用别人写的程序,这让我们在很多地方很麻烦,因此我们会不了解他们的使用方式,所以在很多地方很慢,

因此,我们最大程度的利用互联网,这样我们才可以更好的利用这些库,其次,在python中,我们要充分利用他那个和外界软件联系的优势,

这样可以实现办公的自动化,也因此,我们能够更好的提升我们的工作效率。

在学习python的路上,我们有很多值得学习的地方,我们在以后也会经常用到这一些东西,因此,我们还需努力,未来还有很多问题,这个学期的

学习,我花费了很大的时间,丝毫不低于c语言,但我也相信我在这其中肯定会有不小的收获,我相信未来一定可以有一个更好的成绩。

xxx

xxx

参考资料


http://www.niftyadmin.cn/n/1355233.html

相关文章

关于eslint误报Unexpected side effect in “getCheckedData“ computed property的问题

关于eslint误报Unexpected side effect in “” computed property的问题 先说结论,我没有在computed中修改任何页面变量,这属于eslint监测机制的误判报错。 好的现在进入正文。 起因: 我在eslint中设置了no-side-effects-in-computed-pr…

美化你的console,为它添加样式

美化你的console,为它添加样式 需求: 输出带有样式的consloe,例如 实现: console.log(%c version %c 1.0.0 ,background:#35495e ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff,background:#41b883 ; padding: …

登录python自动化_python自动化实现验证码登录过程

(自动化实现验证码登录,这里内容是入坑后,整合了几个文档的内容)| 以下模块是使用时需要用到的首先:安装pillow库,它的作用是对图片进行简单的处理,在pytharm中使用pip install pillow指令即可安…

box-reflect应用

box-reflect应用 语法 box-reflect&#xff1a;none(无倒影) | <direction> <offset> <mask-box-image> <direction> above | below | left | right&#xff08;倒影方向&#xff0c;上、下、左、右&#xff09; <offset> <length> …

python redis命令zadd_一日一技:【重要】redis-py最新版本zadd方法参数有变

在Python中操作Redis数据库&#xff0c;我们一般使用的第三方库为redis-py。 在redis-py 3.0之前&#xff0c;如果我需要添加一个有序集合的值&#xff0c;我是这样写的代码&#xff1a;import redis client redis.Redis() client.zadd(key, value1, score1, value2, score2) …

char强制类型转换为int_软件特攻队|static_cast,C++强制类型转换操作符

C中总共有四个强制类型转换操作符&#xff1a;reinterpert_cast、static_cast、const_cast、dynamic_cast。强制类型转换&#xff0c;也称为显式转换&#xff0c;接下来我们讲讲static_cast这个强制类型转换操作符。编译器隐式执行的任何类型转换都可以由static_cast来完成&…

火狐浏览器兼容鼠标滚轮事件

火狐浏览器兼容鼠标滚轮事件 起因&#xff1a; this.$refs.canvasDivBox.addEventListener(mousewheel, this.zoomInOrOut, false); 这段代码在chrome中运行正常&#xff0c;但是到firefox中时则不会被触发。 原因&#xff1a; firefox不支持mousewheel&#xff0c;请使用…

js和python交互_python和js能交互吗

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01; 对于表单提交&#xff0c;后台可以用srequest.form.get(username,none)来捕捉前端网页的值。 但是如果是非表…