谷歌播客Google PodCasts解析脚本

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: 111


解析某个频道,全部的结果



 
import json
import requests
 
 
 
feed_url = 'https://podcasts.google.com/feed/aHR0cHM6Ly93d3cueGltYWxheWEuY29tL2FsYnVtLzQwNDc3NDU0LnhtbA?sa=X&ved=0CNwBEI7OAigIahcKEwjgyKrX5Or-AhUAAAAAHQAAAAAQAQ'
 
 
def get_item_from_feed(url):
    out_item_list = []
    
    html = requests.get(url).text
    #with open('1.html', 'w') as f2:
    #    f2.write(html)
    for line in html.split('\n'):
        if 'AF_initDataCallback(' in line:
            blocks = line.split("AF_initDataCallback(")
            #print(blocks)
            assert ');' in blocks[1]
            block = blocks[1].split(");")[0]
            #print(block)
 
            #with open('1.js', 'w') as f3:
            #    f3.write(block)
 
            assert 'data:' in block
            assert ', sideChannel:' in block
            list_raw = block.split('data:')[1]
            list_raw = list_raw.split(', sideChannel:')[0]
            with open('1.json' , 'w' ) as f4:
                f4.write(list_raw)
            d_list = json.loads(list_raw)
            #print(d_list[1])
            list2 = d_list[1]
            for item in list2:
                for sub_item in item:
                    print(sub_item)
                    channel = sub_item[1]
                    id1 = sub_item[11]
                    id2 = sub_item[12]
                    title = sub_item[8]
                    link = sub_item[13]
                    desc = sub_item[14]
                    image = sub_item[15]
                    out_item = {
                        "channel": channel,
                        "id1": id1,
                        "id2": id2,
                        "title": title,
                        "link": link,
                        "desc": desc,
                        "image": image,
                    }
                    print(out_item)
                    out_item_list.append(out_item)
    with open("out_item.list", 'w') as f5:
        for item in out_item_list:
            raw1 = json.dumps(item, ensure_ascii=False)
            f5.write(raw1+'\n')
    return out_item_list
 
            
            
 
 
def get_one_audio(url, file_name):
    res = requests.get(URL)
    print(res)
    c = res.content
    with open('file_name' ,'wb') as f1:
        f1.write(c)
 
def main():
    get_item_from_feed(feed_url)
 
 
if __name__ == "__main__":
    main()
 
 
相关文章
|
1月前
|
弹性计算 运维 Shell
每天解析一个shell脚本(83)
【4月更文挑战第28天】shell脚本解析及训练(83)
11 2
|
1月前
|
弹性计算 运维 Shell
每天解析一个shell脚本(84)
【4月更文挑战第28天】shell脚本解析及训练(84)
14 1
|
1月前
|
JSON Android开发 数据格式
Android框架-Google官方Gson解析,android开发实验报告总结
Android框架-Google官方Gson解析,android开发实验报告总结
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
R语言Pearson相关性分析降雨量和“外卖”谷歌搜索热度google trend时间序列数据可视化
R语言Pearson相关性分析降雨量和“外卖”谷歌搜索热度google trend时间序列数据可视化
|
1月前
|
数据可视化 搜索推荐 数据挖掘
R语言Pearson相关性分析就业率和“性别平等”谷歌搜索热度google trend时间序列数据可视化
R语言Pearson相关性分析就业率和“性别平等”谷歌搜索热度google trend时间序列数据可视化
|
1月前
|
弹性计算 运维 Shell
每天解析一个shell脚本(86)
【4月更文挑战第28天】shell脚本解析及训练(86)
40 0
|
1月前
|
弹性计算 应用服务中间件 Shell
每天解析一个shell脚本(85)
【4月更文挑战第28天】shell脚本解析及训练(85)
8 0
|
4天前
|
机器学习/深度学习 缓存 算法
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
|
6天前
|
XML Java 数据格式
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
16 3
|
4天前
|
存储 NoSQL 算法
Redis(四):del/unlink 命令源码解析
Redis(四):del/unlink 命令源码解析

推荐镜像

更多