Exemple #1
0
def realtime_boxoffice():
    """
    获取实时电影票房数据
    数据来源:EBOT艺恩票房智库 https://www.endata.com.cn/BoxOffice
    :return:
        DataFrame
              BoxOffice     实时票房(万)
              Irank         排名
              MovieName     影片名
              boxPer        票房占比 (%)
              movieDay      上映天数
              sumBoxOffice  累计票房(万)
              default_url   影片海报
    """
    try:
        url = "https://www.endata.com.cn/API/GetData.ashx"
        data = {
            "tdate": today(),
            "MethodName": "BoxOffice_GetHourBoxOffice"
        }
        r = requests.post(url=url, data=data, headers=headers)
        js = get_js('webDES.js')

        docjs = execjs.compile(js)
        res = docjs.call("webInstace.shell", r.text)
        res_dict = json.loads(res)

        if res_dict['Status'] == 1:
            tmp = res_dict['Data']['Table1']
            res_pd = pd.DataFrame(tmp)
            res_pd = res_pd.drop(columns=['moblie_url', 'larger_url', 'mId', 'MovieImg'])
        return res_pd
    except Exception as e:
        return str(e)
Exemple #2
0
def day_boxoffice(date=None):
    """
    获取单日电影票房数据
    数据来源:EBOT艺恩票房智库 https://www.endata.com.cn/BoxOffice
    :param date: 日期
    :return:
        DataFrame
              Irank         排名
              MovieName     影片名
              BoxOffice     单日票房(万)
              BoxOffice_Up  环比变化
              SumBoxOffice  累计票房(万)
              default_url   影片海报
              AvgPrice      平均票价
              AvpPeoPle     场均人次
              RapIndex      口碑指数
              MovieDay      上映天数

    """
    try:
        if date == None:
            edate = today()
        else:
            edate = date
        sdate = day_last_date(edate, days=1)
        url = "https://www.endata.com.cn/API/GetData.ashx"
        data = {
            "sdate": sdate,
            "edate": edate,
            "MethodName": "BoxOffice_GetDayBoxOffice"
        }
        r = requests.post(url=url, data=data, headers=headers)
        js = get_js('webDES.js')

        docjs = execjs.compile(js)
        res = docjs.call("webInstace.shell", r.text)
        res_dict = json.loads(res)

        if res_dict['Status'] == 1:
            tmp = res_dict['Data']['Table']
            res_pd = pd.DataFrame(tmp)
            res_pd = res_pd.drop(columns=[
                'MovieImg', 'moblie_url', 'larger_url', 'MovieID', 'Director',
                'BoxOffice1', 'IRank_pro', 'RapIndex'
            ])
        return res_pd
    except Exception as e:
        return None