爬取CSDN作者总榜排名保存到excel表

申明:资料来源于网络及书本,通过理解、实践、整理成学习笔记。

文章目录

  • 完整代码
  • 运行结果截图

爬取CSDN作者总榜排名保存到excel表_第1张图片

完整代码

import requests, configparser, os


class CSDNGetAuthorRank:
    def get_author_rank(self):
        __conf = configparser.ConfigParser()
        if os.path.exists('../conf/csdn.ini'):
            __conf.read('../conf/csdn.ini')
        else:
            __conf.read('conf/csdn.ini')
        headers = {
     
            __conf.get('get_author_rank_headers', 'headers'): __conf.get('get_author_rank_headers', 'headers_value')}
        all_rank_list = []
        for k in range(1, len(__conf.options('get_author_rank')) + 1):
            url = __conf.get('get_author_rank', 'url_{}'.format(k))
            res = requests.get(url, headers=headers)
            res.encoding = res.apparent_encoding
            all_rank_list_item = res.json()['data']['allRankListItem']
            for i in all_rank_list_item:
                rank_list = []
                # 排名
                current_rank = i['currentRank']
                rank_list.append(current_rank)
                # 用户名
                user_name = i['userName']
                rank_list.append(user_name)
                # 昵称
                nick_name = i['nickName']
                rank_list.append(nick_name)
                # 粉丝数
                fans_count = str(i['fansCount'])
                rank_list.append(fans_count)
                # 获赞
                digg_count = str(i['diggCount'])
                rank_list.append(digg_count)
                # 博客等级
                level = str(i['level'])
                rank_list.append(level)
                # 综合指标
                hot_rank_score = str(i['hotRankScore'])
                rank_list.append(hot_rank_score)
                # vip
                vip = i['vip']
                rank_list.append(vip)
                # 在线
                login_user_is_follow = i['loginUserIsFollow']
                rank_list.append(login_user_is_follow)
                all_rank_list.append(tuple(rank_list))
        print(all_rank_list)
        if os.path.exists('../results/excel/CSDN作者总榜排行前100.xls'):
            csdn_author_data_xls = '../results/excel/CSDN作者总榜排行前100.xls'
        else:
            csdn_author_data_xls = 'results/excel/CSDN作者总榜排行前100.xls'
        # 将获取的CSDN数据写入到excel文档中
        output = open(csdn_author_data_xls, 'w', encoding='gbk')
        output.write('排名\t用户名\t昵称\t粉丝数\t获赞\t博客等级\t综合指标\t会员\t在线\n')
        for i in range(len(all_rank_list)):
            for j in range(len(all_rank_list[i])):
                # write函数不能写int类型的参数,所以使用str()转化
                output.write(str(all_rank_list[i][j]))
                # 相当于Tab一下,换一个单元格
                output.write('\t')
                # 写完一行立马换行
            output.write('\n')
        output.close()


if __name__ == '__main__':
    CSDNGetAuthorRank().get_author_rank()


运行结果截图

爬取CSDN作者总榜排名保存到excel表_第2张图片
推荐一:爬取天天基金的7663个基金排名保存到excel表

推荐二:爬取哔哩哔哩主播的头像以昵称命名保存到本地文件

推荐三:爬取CSDN作者总榜排名保存到excel表

一个坚持学习,坚持成长,坚持分享的人,即使再不聪明,也一定会成为优秀的人!

如果看完觉得有所收获的话,记得一键三连哦,谢谢大家!

你可能感兴趣的:(Selenium,Web自动化,python,request,os,爬虫,大数据)