荔枝直播(分享页):

分享页主页直播列表:(抓包分析)

  • 接口:https://appweb.lizhi.fm/smallApp/getLiveList?pageNum=1
  • 支持获取n页数据,注意请求间隔;
  • get请求,获取分享页必须的 liveId 字段

直播分享页:

  • html:https://appweb.lizhi.fm/live/share?liveId=5190925580233002038&njId=2552360964061657132&duserId=138542e7ea551a918c42396e0488695b&from=iosBrowser
  • 中间两个参数非必须
  • get请求,获取 uid 及 liveUrl 字段
  • 该页面请求时需设置移动端User-Agent
  • ‘User-Agent’:‘Mozilla/5.0 (iPhone; CPU iPhone OS 14_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148’

编码实现:


import requests
import time
import json
import reclass LiveList(object):def __init__(self, pageLimit=10):self.liveList = []self.pageLimit = pageLimitdef getLiveListPage(self, pageNum=1):url = 'https://appweb.lizhi.fm/smallApp/getLiveList?pageNum=' + str(pageNum)print(url)time.sleep(1)response = requests.get(url)response.encoding = 'utf-8'infos = {}try:infos = json.loads(response.text)except Exception as e:print(e)infos = {}infos['ret'] = {}infos['ret']['dataList'] = []            return (len(infos['ret']['dataList']), infos['ret']['dataList'])def getLiveListPages(self):cur_page = 1cur_len = 10while cur_len > 0:if cur_page > self.pageLimit:breakpage_len, page_liveList = self.getLiveListPage(cur_page)cur_len = page_lenself.liveList.extend(page_liveList)cur_page = cur_page + 1return self.liveListdef parseRegular(param="liveUrl"):liveUrl_r = param + r' = \"([^;]*)\";' liveUrl_b = re.compile(liveUrl_r ,  re.DOTALL)return liveUrl_bdef parseShareURL(liveId):url1 = "https://appweb.lizhi.fm/live/share?liveId=" + liveId + "&from=iosBrowser"headers = {'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 14_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148'}response_1=requests.get(url1, headers=headers)time.sleep(1)response_1.encoding='utf-8'liveUrl = parseRegular('liveUrl').findall(response_1.text)userId = parseRegular('userId').findall(response_1.text)if len(liveUrl) > 0:return {"liveUrl":liveUrl[0],"userId":userId[0]}else:return Noneif __name__ == '__main__':
#     建议:每隔1h进行一次刷新#     获取1页数据liveListObj = LiveList(1)liveList = liveListObj.getLiveListPages()
#     打印5页数据的直播记录数print('liveList count = ',len(liveList))  #     最终结果保存数组final_res = []
#     遍历直播记录for liveItem in liveList:print(liveItem['liveId'])
#         解析当前直播分享页userInfo = parseShareURL(liveItem['liveId'])if userInfo is None:print("直播已结束!")else:print('直播中...')final_item = {**liveItem, **userInfo} final_res.append(final_item)
#     打印最终结果print(len(final_res),final_res)
#     结果存入本地jsonwith open('liveList.json','w') as file_obj:json.dump(final_res,file_obj)print('over!!!')

Print:


https://appweb.lizhi.fm/smallApp/getLiveList?pageNum=1
liveList count =  10
5190925580233002038
直播中...
5386445300058660864
直播中...
5190898481141075510
直播中...
5190925580232704054
直播中...
5190925580233034294
直播中...
5190898481140796470
直播中...
5342496960865640448
直播中...
5386670725150109696
直播中...
5190898481141102646
直播中...
5190899559177836086
直播中...
10 [{'radioConver': 'http://cdnimg103.lizhi.fm/studio/2020/09/21/2829150432296549942.jpg', 'liveStatus': 1, 'totalCount': '25309', 'liveName': '大凯故事会', 'userName': '大凯说', 'liveId': '5190925580233002038', 'userPortrait': 'http://cdnimg103.lizhi.fm/user/2017/05/22/2603223407410991618_80x80.jpg', 'liveStartTime': 1626847200000, 'liveEndTime': 1626861600000, 'tag': '', 'liveUrl': 'http://pull102.gzlz307.com/home/6d944f6ab72b3d069517146587a23c39/playlist.m3u8?only-audio=1', 'userId': '2552360964061657132'}, {'radioConver': 'http://cdnimg103.lizhi.fm//studio/2021/07/14/2884134180267993654.jpg', 'liveStatus': 1, 'totalCount': '3154', 'liveName': '日常的午后尬聊', 'userName': '搞事儿ღ 养声糖', 'liveId': '5386445300058660864', 'userPortrait': 'http://cdnimg103.lizhi.fm/user/2020/07/26/2818635229221560322_80x80.jpg', 'liveStartTime': 1626856200000, 'liveEndTime': 1626861600000, 'tag': '脱口秀', 'liveUrl': 'http://pull102.gzlz307.com/home/94aa9ab2951090660da928e2418e5a76/playlist.m3u8?only-audio=1', 'userId': '14298657'}, {'radioConver': 'http://cdnimg103.lizhi.fm/studio/2020/10/19/2834415944099236918.jpg', 'liveStatus': 1, 'totalCount': '10128', 'liveName': '性感男神在线直播', 'userName': '王帅帅☀幸好有你', 'liveId': '5190898481141075510', 'userPortrait': 'http://cdnimg103.lizhi.fm/user/2021/04/25/2869209908380339202_80x80.jpg', 'liveStartTime': 1626854400000, 'liveEndTime': 1626856200000, 'tag': '', 'liveUrl': 'http://pull102.gzlz307.com/home/aef22384abe68f32729d855ee12b99bc/playlist.m3u8?only-audio=1', 'userId': '2545439804331933740'}, {'radioConver': 'http://cdnimg103.lizhi.fm/studio/2021/07/05/2882414548083745334.jpg', 'liveStatus': 1, 'totalCount': '11968', 'liveName': '百变老舅正在直播', 'userName': '老舅⁹ 招主播', 'liveId': '5190925580232704054', 'userPortrait': 'http://cdnimg103.lizhi.fm/user/2021/07/05/2882441263372247554_80x80.jpg', 'liveStartTime': 1626854419000, 'liveEndTime': 1626861619000, 'tag': '脱口秀', 'liveUrl': 'http://pull102.gzlz307.com/home/2b5aa92a75c9a6b76fafebd6e38d218d/playlist.m3u8?only-audio=1', 'userId': '5086955461592188972'}, {'radioConver': 'http://cdnimg103.lizhi.fm/studio/2021/01/04/2848695138400300598.jpg', 'liveStatus': 1, 'totalCount': '2794', 'liveName': '夺宝、塔罗牌好运直播间❤️', 'userName': '墨子轩												

爬虫练习-荔枝直播(分享页)相关推荐

  1. 《封号码罗》python爬虫之抖音分享页破解字体反爬虫进阶实战(六)

    无敌免责声明:本文主要用于学习技术,切不可用于非法盈利目的,不可用于商业,不可攻击该服务器 先放出结果镇楼: {'nickname': 'Dear-迪丽热巴', '抖音ID': '274110380' ...

  2. python 爬虫抓取心得分享

    /** author: insun title:python 爬虫抓取心得分享 blog:http://yxmhero1989.blog.163.com/blog/static/11215795620 ...

  3. python爬虫下一页_python爬虫怎么获取下一页的url

    如何用python实现爬虫抓取网页时自动翻页在你没有任何喜欢的人的时候,你过得是最轻松快乐的,尽管偶尔会觉得孤单了点. 小编把网页的第一篇内容抓取好了,但是用python怎么抓取后面的 又如何停止那天 ...

  4. 抖音爬取粉丝用户列表_抖音分享页用户信息爬取

    其实这个是有客户要求做的,但我完成的不够完美.过来分享出来好了~ 首先,你知道抖音有一个用户分享页吧? F12查看代码. ok,可以看到有数字的地方都做了字体反爬,比如抖音id上的数字啊,粉丝数这些. ...

  5. 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录

    2019独角兽企业重金招聘Python工程师标准>>> 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录 来源:微信技术团队的公众号WeMobileDev 热 ...

  6. python爬虫案例-Python3爬虫三大案例实战分享

    课程名称: [温馨提示:1. 你可以在PC端浏览器或者微信收藏该页面,以方便你快速找到这个课程:2. 课程相关资料可在课程PC端公告查看下载:3.加入课程后,点(课时)列表即可观看视频 ] 课程须知: ...

  7. python网络爬虫权威指南 豆瓣_豆瓣Python大牛写的爬虫学习路线图,分享给大家!...

    豆瓣Python大牛写的爬虫学习路线图,分享给大家! 今天给大家带来我的Python爬虫路线图,仅供大家参考! 第一步,学会自己安装python.库和你的编辑器并设置好它 我们学习python的最终目 ...

  8. 第四期直播分享预告-高薪offer指南

    第四期直播分享预告 ● 精简回顾和总结之前分享的精华内容 ● 深度剖析大厂求职本质原理(需求,简历,面试,策略): ● 如何学习和深入理解网络(上周分享,剩余部分继续):帮你梳理关于网络的一切知识,让 ...

  9. python爬虫 点击下一页_python爬虫实现获取下一页代码

    我们首先来看下实例代码: from time import sleep import faker import requests from lxml import etree fake = faker ...

最新文章

  1. markdown自动生成侧边栏TOC /目录
  2. spring mvc-REST
  3. 2019数据安装勾选_万能的XY数据标签插件,柱形图也可以呈现变化率
  4. SAP BSP应用有状态和无状态行为差异比较
  5. WPF设计の自定义窗体
  6. poi导出word时替换的段落内容会多出一个}和逗号_办公族必备11个Word文字处理技巧,太实用了!...
  7. 前端开发必要的9个开源框架
  8. 多媒体计算机软件系统课件,《多媒体计算机系统》PPT课件.ppt
  9. 2022年大厂中秋礼盒大赏,卷的就是创意!
  10. 外挂学习之路(10)--- 穿透发包线程寻找call的通杀方法
  11. json的格式是什么?
  12. MobSF分析.ipa文件,MobSF分析iOS app
  13. 梯形图请用c语言,简单使用C语言写梯形图精简V2.0.pdf
  14. could not initialize javavm mysql_Could not initialize JavaVM
  15. 51单片机控制双步进电机的魔法师思想
  16. 【增量学习】综述解析:A continual learning survey: Defying forgetting in classification tasks
  17. 电脑快捷键大全详细-基础
  18. xcode 断点不现实栈_真正成为“全栈”是不现实的,但您应该尝试
  19. 互联网+大赛评审规则浅析
  20. 组网技术—VLANTRUNKVTP

热门文章

  1. 【CSS】模拟太阳系行星的公转
  2. 关于MSELoss、BCELoss、CELoss损失函数求导的推导
  3. **opencv331install_path**
  4. Ceph PG 归置组状态
  5. 硬干货:深入剖析 MySQL 索引和 SQL 调优实战
  6. 深度清理C盘空间,让你的C盘多出20G
  7. 使用Unity进行Android游戏开发
  8. 机器学习之朴素贝叶斯(一):朴素贝叶斯的介绍、概率基础(拉普拉斯平滑)、sklearn朴素贝叶斯实现API、朴素贝叶斯分类的优缺点、文本的特征工程
  9. PHP面试题(附答案)
  10. 基于独立分量分析的语音信号盲源分离