(详细)爬虫可视化温州11年天气大作业

仅以本次爬虫大作业,纪念老师给的士力架
以后应该再也没有士力架的课了吧
本文编辑于2022年1月1日 0:33分
可以作为参考
目 录
1 关键技术介绍 3
一、数据分析用到的关键技术 3
二、分析目的 3
2 数据准备 4
一、爬取的网站 4
二、爬取数据用到的方式方法 5
三、爬取所用的代码 5
3 数据清洗与整理 9
一、数据清洗 10
二、数据整理 11
4 数据分析及可视化 17
一、温度分析及可视化 17
二、天气状况 20
三、风力风向 24
5 结论 25
一、结论与感想 25
二、不足 26
参考文献 27

1 关键技术介绍
一、数据分析用到的关键技术
1、在数据爬取阶段,我们运用了lxml库中的etree、requests库、bs4库中的Beautiful模块以及time库设置时间等待;
2、在数据清洗过程中,我们运用了pandas库以及numpy库;
3、在数据可视化过程中,我们运用了seaborn库、matplotlib.pyplot库以及wordcloud库中的WordCloud模块和ImageColorGenerator,用sns.lineplot画出折线图,barplot画出柱状图,wordcloud画出词云图。
二、分析目的
早在20世纪上半叶,部分人们就意识到全球平均气温在逐步升高,这就是全球变暖问题。全球变暖是人类无法逾越的高山,至今,全球变暖趋势仍在持续。
因此,全球气候变暖问题日趋严重,由此导致的各类问题正在严重的威胁着人类赖以生存的环境,气温变暖已成为不可回避的重大理论和实际问题。
2020年,全球平均温度较工业化前水平(1850~1900年平均值)高出1.2℃,是有完整气象观测记录以来的三个最暖年份之一,亚洲陆地表面平均气温比常年值(本报告使用1981~2010年气候基准期)偏高1.06℃,是20世纪初以来的最暖年份;而2011~2020年,是1850年以来最暖的十年。
所以我们准备对温州地区的天气信息进行可视化,分析浙江省温州地区2011年1月至2021年12月(共11年)气温及其他元素的变化。

2 数据准备
一、爬取的网站
天气后报网
http://tianqihoubao.com/lishi/
在这里插入图片描述

这个网站有全国历史天气,但我们只取一瓢,只选择温州的天气。
我们准备爬取温州从2011年1月至2021年12月的天气。
下图是温州2011年天气数据总和,其余年天气格式和它一样
在这里插入图片描述

二、爬取数据用到的方式方法

time库在这里主要用来计时,爬取时间一共用了多少
在这里插入图片描述在这里插入图片描述

三、爬取所用的代码
1.获取每一个月的url(共132个月)

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
为了进行爬虫数据可视化大作业,我们需要先进行数据爬取和保存。可以使用Python的requests和BeautifulSoup库进行网页爬取,使用xlwt库将数据保存到Excel文件中。具体代码如下: ```python import requests from bs4 import BeautifulSoup import xlwt # 爬取数据 def getData(): datalist = [] for i in range(0, 10): url = 'https://www.xxx.com/page/' + str(i) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} html = requests.get(url, headers=headers).text soup = BeautifulSoup(html, 'html.parser') for item in soup.find_all('div', class_='job-item'): data = [] item_title = item.find('div', class_='job-title') data.append(item_title.text.strip()) item_company = item.find('div', class_='company-name') data.append(item_company.text.strip()) item_salary = item.find('div', class_='job-salary') data.append(item_salary.text.strip()) item_location = item.find('div', class_='job-location') data.append(item_location.text.strip()) item_exp = item.find('div', class_='job-exp') data.append(item_exp.text.strip()) item_edu = item.find('div', class_='job-edu') data.append(item_edu.text.strip()) item_welfare = item.find('div', class_='job-welfare') data.append(item_welfare.text.strip()) datalist.append(data) return datalist # 保存数据到Excel文件中 def saveData(datalist, savepath): book = xlwt.Workbook(encoding="utf-8", style_compression=0) sheet = book.add_sheet('python', cell_overwrite_ok=True) col = ("工作链接", "工作名称", "公司", "薪资", "工作地区", "工作经验", "学历", "员工福利") for i in range(0, 8): sheet.write(0, i, col[i]) for i in range(0, len(datalist)): data = datalist[i] for j in range(0, 8): sheet.write(i + 1, j, data[j]) book.save(savepath) # 数据可视化 # 这里可以使用matplotlib、seaborn等库进行数据可视化,具体方法可以根据需求进行选择和实现。 if __name__ == '__main__': datalist = getData() saveData(datalist, 'data.xls') ``` 在数据爬取和保存完成后,我们可以使用matplotlib、seaborn等库进行数据可视化。具体方法可以根据需求进行选择和实现。例如,我们可以使用matplotlib库绘制柱状图和饼图,代码如下: ```python import xlrd import matplotlib.pyplot as plt # 读取Excel文件中的数据 def readData(filename): data = xlrd.open_workbook(filename) table = data.sheet_by_name('python') nrows = table.nrows ncols = table.ncols datalist = [] for i in range(1, nrows): rowdata = [] for j in range(ncols): rowdata.append(table.cell(i, j).value) datalist.append(rowdata) return datalist # 绘制柱状图 def drawBar(datalist): salary = {} for data in datalist: if data[3] in salary: salary[data[3]] += 1 else: salary[data[3]] = 1 plt.bar(range(len(salary)), list(salary.values()), align='center') plt.xticks(range(len(salary)), list(salary.keys())) plt.xlabel('Salary') plt.ylabel('Number of Jobs') plt.title('Bar Chart of Salary') plt.show() # 绘制饼图 def drawPie(datalist): edu = {} for data in datalist: if data[6] in edu: edu[data[6]] += 1 else: edu[data[6]] = 1 labels = list(edu.keys()) sizes = list(edu.values()) plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90) plt.axis('equal') plt.title('Pie Chart of Education') plt.show() if __name__ == '__main__': datalist = readData('data.xls') drawBar(datalist) drawPie(datalist) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值