20193323实验四《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来添加附件,最终,我们可以用他们从而实现如何发送文件。




码云链接:
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

参考资料

posted @ 2020-06-06 20:58  20193323何世莽  阅读(314)  评论(0编辑  收藏  举报