bilibili番剧评分爬虫

2018-06-18 00:21:09来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

python选修课学习中练手写的,主要就是查询bilibili提供得api

# -*- coding:utf-8 -*-

import requests
import json
import csv
import sys

#将windows系统默认语言从gbk-2312设置为utf-8
reload(sys)
sys.setdefaultencoding('utf-8')

def rating(bangumi_id):
    payload = {'callback': 'seasonListCallback'}
    response = requests.get('https://bangumi.bilibili.com/jsonp/seasoninfo/{0}.ver'.format(bangumi_id), params=payload)
    data = json.loads(response.text[19:-2])
    try:
        season_id = int(data['result']['season_id'])
        title = '{0}'.format(data['result']['media']['title'])
        score = float(data['result']['media']['rating']['score'])
        count = int(data['result']['media']['rating']['count'])
        is_finish = int(data['result']['is_finish'])  
        try:
            writer.writerow([season_id, title, score, count, is_finish])
        except:
            pass
    except KeyError:
        try:
            season_id = int(data['result']['season_id'])
            title = '{0}'.format(data['result']['title'])
            score=float(0)
            count=int(0)
            is_finish = int(data['result']['is_finish'])
            try:
                writer.writerow([season_id, title, score, count, is_finish])
            except:
                pass
        except:
            return None
        return None
if __name__ == '__main__':
    with open('bangumi.csv', 'wb+') as csv_file:
        writer = csv.writer(csv_file, delimiter=',')
        writer.writerow(['序号','名称', '评分(默认0分)', '评分人数(人数不足为0人)', '是否完结(1:表示已完结)'])
        for i in range(7000):
            rating(i)

  整理结果csv https://pan.baidu.com/s/1jHX2fJ4

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python day 6(3) Python 函数式编程1

下一篇:input学习