python爬虫课设-爬取3000条数据并做数据可视化(代码片段)

Henrik-Yao Henrik-Yao     2022-12-12     604

关键词:

很久以前接的单子,分享一下(挺水的,将就着看吧)

文章目录

作业要求

《Python与数据分析》期末大作业要求(2020-2021学年第2学期)
一、期末作业要求:
1、在前期作业爬取的数据基础上,用Python编写代码对爬取的数据进行全面数据分析并可视化,鼓励建立计量模型进行分析;
2、写作期末大作业文档:整体思路,对爬取网站的分析,对数据进行哪些方面的数据分析及数据的可视化,结论。
3、必须自己编写爬虫程序,不允许使用爬虫框架(如scrapy) 爬取数据,严禁抄袭。
二、提交:
1、爬虫程序代码(前期作业)文件
(.ipynb),加, 上必要的注释或笔记说明;
2、数据分析、可视化代码文件(.ipynb) ,加上必要的注释或笔记说明;
3、抓取的数据文件及数据分析和可视化产生的中间文件;
4、期末作业文档。

数据爬取

# 用于爬取信息
import requests
# 用于解析网页
from bs4 import BeautifulSoup
# 用于正则匹配找到目标项目
import re
# 对csv文件的操作
import csv

# 打开文件
# a+权限追加写入
# newline=""用于取消自动换行
fp = open("data.csv", "a+", newline="")
# 修饰,处理成支持scv读取的文件
csv_fp = csv.writer(fp)
# 设置csv文件内标题头
head = ['日期', '最高气温', '最低气温']
# 写入标题
csv_fp.writerow(head)

# UA伪装
headers = 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0"


# 存放全部数据
data = []

# 进行url拼接,主要拼接的是年份和月份
# 从2011年到2020年
for i in range(2011, 2021):
    # 从1月到12月
    for j in range(1, 13):
        # 字符串化
        i = str(i)
        # 小于10则补0
        if j < 10:
            j = "0" + str(j)
        else:
            # 字符串化
            j = str(j)
        # 完成拼接
        url = "http://www.tianqihoubao.com/lishi/beijing/month/" + i + j + ".html"

        # 获取响应
        response = requests.get(url=url, headers=headers)
        # 设置编码为gbk
        response.encoding = 'gbk'
        # 获取响应文本数据
        page = response.text
        # 用BeautifulSoup解析网页
        soup = BeautifulSoup(page, 'lxml')
        # 获取所有tr标签
        tr_list = soup.find_all('tr')

        # 解析每一个tr标签
        for tr in tr_list:
            # 用于存放一天的数据
            one_day = []
            # 字符串化便于正则匹配
            tr = str(tr)
            # 去除所有空格
            tr = tr.replace(" ", "")
            # 取出日期
            date = re.findall(r'title="(.*?)北京天气预报">', tr)
            # 如果取到则放入one——day存放
            if date:
                one_day.append(date[0])
            # 取出最高温和最低温
            tem = re.findall(r'(.*?)℃', tr)
            # 如果取到则放入one——day存放
            if tem:
                one_day.append(tem[0])
                one_day.append(tem[1])
            # 如果完整的取到一天的数据则放入data存放
            if len(one_day) == 3:
                data.append(one_day)
                print(one_day)
                # 写入csv文件
                csv_fp.writerow(one_day)

# 关闭文件指针
fp.close()

爬取结果

数据处理

# 读取csv文件
import csv
# 作图工具
from matplotlib import pyplot as plt

# 存放日期
x = []
# 存放最高气温
h = []
# 存放最低气温
l = []
# 读取之前爬取的数据
with open("data.csv") as f:
    reader = csv.reader(f)
    j = 1
    for i, rows in enumerate(reader):
        # 不要标题那一行
        if i:
            row = rows
            print(row)
            x.append(rows[0])
            h.append(int(rows[1]))
            l.append(int(rows[2]))
# 设置画板大小
fig = plt.figure(dpi=128, figsize=(20, 6))
# 显示中文标签
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 画最高气温
plt.plot(x, h, c="red", alpha=0.5)
# 画最低气温
plt.plot(x, l, c="blue", alpha=0.5)
# 区间渲染
plt.fill_between(x, h, l, facecolor="blue", alpha=0.2)
# 标题
plt.title("北京市过去3658天的气温变化")
# y轴名称
plt.ylabel("气温")
# x轴名称
plt.xlabel("日期")
plt.xticks(x[::300])
plt.show()

数据可视化

大作业文档

整体思路
爬取天气后保网站北京市过去9年(3658天)的最高温度和最低温度,并运用matplotlib绘制折线图进而分析天气变化趋势
网站分析
1.该网站单次只能查询一个月的天气情况,所以通过拼接url的方式依次查询
2.查询数据位于table表单中,tr标签没有属性,所有用正则匹配处理每个tr时需要判断有没有取到数据,日期,最高气温,最低气温都查询到时视为成功并存入总数据的列表
数据分析
1.通过过去3658天的气温变化,可以看出北京市每年的寒暑气温温差基本稳定在50度左右,而2015年寒暑温差超过60度
结论
1.北京市温度变化基本符合规律

python爬取贝壳找房平台深圳地区的租房数据并做简单分析和可视化?

想要代码谢谢各位大佬!!滚动数据爬取,刚接触爬虫很难理解,建议自己先去了解一下方向:scrapy框架爬取数据+pyecharts数据可视化参考技术A滚动数据爬取,刚接触爬虫很难理解,建议自己先去了解一下方向:scrapy框架爬取数... 查看详情

如何使用python爬取知乎数据并做简单分析

一、使用的技术栈:爬虫:python27+requests+json+bs4+time分析工具:ELK套件开发工具:pycharm数据成果简单的可视化分析1.性别分布0绿色代表的是男性^.^1代表的是女性-1性别不确定可见知乎的用户男性颇多。二、粉丝最多的top30粉丝最... 查看详情

python爬虫实战,携程旅游景点数据爬取,实现数据可视化(代码片段)

...单的数据可视化分析呗。让我们愉快地开始吧~开发工具Python版本:3.6.4相关模块:bs4模块;jieba模块;pyecharts模块;wordcloud模块;requests模块;以及一些Python自带的模块。环境搭建安装Python并添加到环境变量,pip安装需要的相关... 查看详情

python1+x证书培训笔记-附(大数据项目实战)-可做为简单课设(代码片段)

前言本文的主要技术是采用Python的Scrapy框架爬取网站的待租房数据,然后使用Mysq的对数据继续简单处理然后存储,再Flask和Highcharts对数据进行可视化展示,逻辑很简单,只能算是对这几天的学习做一个简单的总结... 查看详情

python爬虫实战,scrapy实战,爬取并简单分析知网中国专利数据(代码片段)

...数据量,避免给知网服务器带来不必要的压力。开发工具Python版本:3.6.4相关模块:scrapy模块;fake_useragent模块;pyecharts模块;wordcloud模块;jieba模块;以及一些Python自带 查看详情

python爬虫——刚学会爬虫,第一次实践就爬取了《长津湖》影评数据(代码片段)

思路:数据采集清洗入库分析处理1.数据采集接口地址https://m.maoyan.com/mmdb/comments/movie/257706.json?_v_=yes&offset=15&startTime=解析地址:257706代表电影ID长津湖offset=15代表:每次加载多少条数据15条start 查看详情

python爬虫——刚学会爬虫,第一次实践就爬取了《长津湖》影评数据(代码片段)

思路:数据采集清洗入库分析处理1.数据采集接口地址https://m.maoyan.com/mmdb/comments/movie/257706.json?_v_=yes&offset=15&startTime=解析地址:257706代表电影ID长津湖offset=15代表:每次加载多少条数据15条start 查看详情

【python爬虫实战】爬取豆瓣影评数据

参考技术A爬取豆瓣影评数据步骤:1、获取网页请求2、解析获取的网页3、提速数据4、保存文件 查看详情

python3下scrapy爬虫(第八卷:循环爬取网页多页数据)

之前我们做的数据爬取都是单页的现在我们来讲讲多页的一般方式有两种目标URL循环抓取另一种在主页连接上找规律,现在我用的案例网址就是通过点击下一页的方式获取多页资源话不多说全在代码里(因为刚才写这篇文章时电... 查看详情

python的爬虫框架都有哪些?

向大家推荐十个Python爬虫框架。 1、Scrapy:Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。它是很强大的爬虫框架,可以满足简单... 查看详情

python爬虫实战,openpyxl模块学习,爬取房价信息并简单的数据分析(代码片段)

前言利用Python爬取房价信息并进行简单的数据分析Ok,让我们开始吧~~~开发工具Python版本:3.6.4相关模块:openpyxl模块;requests模块;bs4模块;pyecharts模块;以及一些python自带的模块。环境搭建安装Python并添加到环境变量,pip安装... 查看详情

python爬虫应用实战-爬取股票数据做分析

01本文涉及到的知识点1、python字符串:分割、拼接、中文字符判断;2、python正则表达式;3、爬虫requests请求库、xpath获取数据、代理服务器;4、selenium用法:无头浏览器、元素定位、显式等待、数据获取;5、python操作mongodb02网... 查看详情

如何爬取了知乎用户信息,并做了简单的分析(代码片段)

爬虫:python27+requests+json+bs4+time分析工具:ELK套件开发工具:pycharm1.性别分布0绿色代表的是男性^.^1代表的是女性-1性别不确定可见知乎的用户男性颇多。2.粉丝最多的top30粉丝最多的前三十名:依次是张佳玮、李开复、黄继新等等... 查看详情

最高效的python爬虫框架有几个

...种语言等。作者从requests库的简洁与强大得到灵感,使用Python开发的可用于提取文章内容的程序。支持10多种语言并且所有的都是unicode编码。5、Python-goose:Java写的文章提取工 查看详情

python开发爬虫之动态网页抓取篇:爬取博客评论数据

以爬取《Python网络爬虫:从入门到实践》一书作者的个人博客评论为例。网址:http://www.santostang.com/2017/03/02/hello-world/1)“抓包”:找到真实的数据地址 右键点击“检查”,点击“network”,选择“js”。刷新一下页面,选中... 查看详情

python网络爬虫爬取静态数据详解

目的爬取http://seputu.com/数据并存储csv文件导入库lxml用于解析解析网页HTML等源码,提取数据。一些参考:https://www.cnblogs.com/zhangxinqi/p/9210211.htmlrequests请求网页chardet用于判断网页中的字符编码格式csv用于存储文本使用。re用于正则... 查看详情

003python网络爬虫与信息提取网络爬虫的'盗亦有道'

...量小,并且对于爬取速度不敏感,这种爬虫可以直接通过Python提供的第三方库Requests即可实现      2.中等规模,主要用于爬取网站,系列网站,数据量大,并且对于爬取速度有敏感性,如爬取网站上航班信息,对于这种... 查看详情

python爬虫实战之爬淘宝商品并做数据分析,现在赚钱没点技术还真不行!(代码片段)

之前我写了一个爬取淘宝商品的源码,给了一个小伙子学习,本想着后面写成文章分享给大家学习的,但没成想被那个小伙子捷足先登了…今天还是拿出来分享给大伙!是这样的,之前接了一个金主的单子ÿ... 查看详情