资深程序媛手把手教你如何从零基础进行电影数据数据分析采集!

本文介绍如何从零基础进行电影数据的爬取和分析。通过爬取猫眼票房的JSON数据,利用Python进行数据采集,并将数据存储到MySQL或Excel。文章详细讲解了获取URL、构建日期列表、解析数据以及存储到数据库的全过程,同时指出代码中存在逻辑错误,邀请读者找出问题。最后,提到下一步将进行数据可视化。
摘要由CSDN通过智能技术生成

本文是爬虫及可视化的练习项目,目标是爬取猫眼票房的全部数据并做可视化分析。

1、获取url

我们先打开猫眼票房http://piaofang.maoyan.com/dashboard?date=2019-10-22 ,查看当日票房信息,

但是在通过xpath对该url进行解析时发现获取不到数据。

于是按F12打开Chrome DevTool,按照如下步骤抓包

 

 

 

 

 

 

 

再打开获取到的url: http://pf.maoyan.com/second-box?beginDate=20191022

 

 

 

可以看到是json数据,并且url是以日期结尾的,也就是每日的票房数据都保存在对应日期的url中,这样我们就可以通过构造url来爬取每天的票房数据。

2、开始采集

先创建了两个函数,

一个用来获取制定年份的所有日期,例如,传入2019,返回['20190101', '20190102'...'20191230', '20191231']。

当然也可以传入多个年份的列表,如[2016,2017,2018'],返回 ['20160101','20160102', ...'20170101',...'20180101',...'20181231']

这里没有使用任何库,用笨方法手动构造了全年的日期列表。

def get_calendar(years):
    """
    传入年份(可用list传入多个年份),得到年份中的所有日期
    :param years: 可传入list、int、str
    :return:  年份中全部日期的list,日期格式: "2019-09-30"
    """
    mmdd = []
    # 判断传入参数的格式,如果是list则排序,如果是str或int则转为list
    if isinstance(years, list):
        years.sort()
    else:
        years = [int(years)]
    # 先为每个月都加入31天,然后删掉2,4,6,9,11的31日和2月的30日,再判断闰年来删掉2月29日
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值