Python爬虫——抖音排行榜

最近公司准备搞个抖音号,叫我们爬一下抖音的排行榜,记录一下抖音排行榜
链接在这里
选择二次元榜单,打开network,很快就可以找到数据存放的位置
数据存放的位置
简单分析一下可知,不同榜单的URL区别主要在于“billboard_type=”这个参数,这里需要一个一个确定一下,二次元的几个榜单的话是从61到68;还有得到的数据是json格式,接下来就可以写代码啦。对了,header还是要伪装一下的哈,主要是user-agent和cookie。其他保存自己需要的数据即可

from bs4 import BeautifulSoup
import requests
import os
import json
from datetime import datetime
import pandas as pd
import time

def get_links(linkid):
    url = 'https://creator.douyin.com/aweme/v1/creator/data/billboard/?billboard_type={}'.format(linkid)
    headers = {
    "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36',
    "referer": "https://creator.douyin.com/billboard/cospa",
    'cookie':'XXX'#填写自己的cookie即可
}
    res = requests.get(url,headers=headers)
    jd=json.loads(res.text)['billboard_data']
    
    newsdetails=[]
    for ent in jd :
        newsdetails.append(get_detail(ent,linkid))
        
    return newsdetails
def get_detail(jd,linkid):
    result={}
    result['标题']=jd['title']#标题
    result['影响力']=str(int(jd['value'])/10000)+'w'#影响力
    result['排名']=jd['rank']#排名
    result['粉丝数']=str(int(jd['map_list'][0]['value'])/10000)+'w'#粉丝数
    result['近一月上榜次数']=jd['map_list'][1]['value']#近一月上榜次数
    result['上周排名']=jd['map_list'][2]['value']#上周排名
    result['分类']=linkid#分类
    result['链接']=jd['link']#链接
    now = datetime.now().strftime('%Y-%m-%d')
    result['时间']=now
    return result


def main():
    news_total = []
    for i in range(61,68):
        news_total.extend(get_links(i))
        
    df = pd.DataFrame(news_total)
    
    
    now = datetime.now().strftime('%m%d_%H%M%S')
    newsname = 'dy'+now+'.xlsx'
    df.to_excel(newsname)

if __name__ == '__main__':
    main()
  • 2
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值