如何抓取某音视频的互动数据

如何抓取某音视频的互动数据

闲来无事琢磨了一下某音的视频数据抓取,发现通过链接就能提取点赞、评论、收藏这些互动数据。分享给有同样兴趣的朋友,说不定能帮你省点时间。

具体实现方法

  1. 获取视频链接 随便找个某音视频,复制它的分享链接。注意要完整的链接,不能是那种简化过的短链接。

  2. 提取视频ID 链接里有一串特殊的字符就是视频ID,用正则表达式或者字符串处理方法把它单独提取出来。

  3. 构造API请求 观察平台的数据请求规律,构造一个能获取视频详情的请求。需要设置合适的请求头和参数。

  4. 解析返回数据 拿到返回的JSON数据后,找到点赞数、评论数和收藏数对应的字段。这些字段可能会变,需要定期检查更新。

    python 复制代码
     # 监听数据包
            try:
                driver.listen.start('aweme/v1/web/aweme/detail/')
            except Exception as e:
                print(f"启动监听时发生错误: {e}")
                return None
    
            # 访问网站
            try:
                driver.get(video_url)
            except Exception as e:
                print(f"访问网页时发生错误: {e}")
                return None
    
            # 定义一个变量来存储响应数据
            json_data = None
    
            # 定义一个事件来通知主线程数据包已接收
            data_received = threading.Event()
            stop_event = threading.Event()  # 新增:用于通知子线程停止运行
    
            def listen_for_response():
                nonlocal json_data
                try:
                    while not stop_event.is_set():  # 检查是否需要停止
                        resp = driver.listen.wait(timeout=wait_time)  # 使用从EVN中导入的wait_time
                        if resp:
                            json_data = resp.response.body
                            data_received.set()
                            break  # 收到数据后退出循环
                except Exception as e:
                    print(f"监听数据包时发生错误: {e}")
                    EimsErrorMessage.add_interaction_error_log(link_address, 'video类型视频,监听接口失败', public_ip)
                finally:
                    stop_event.set()  # 确保最终设置停止标志

注意事项

  • 请求频率别太高,容易被封
  • 数据字段可能会变,需要及时调整
  • 仅供学习交流,别用于商业用途
  • 只提供部分主要功能点代码,如需完整的,请私信

这个小小的探索还挺有意思的,虽然没什么实际用途,但能一窥平台的数据结构也是种乐趣。有兴趣的话可以自己试试看,说不定能发现更有意思的东西。

相关推荐
wangchunyu1145 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
2501_944521597 小时前
Immer 跨端三方库仓颉适配全流程
python·eclipse·django
信誓旦旦的程序猿7 小时前
【Python量化实战宝典 #26】止损与回撤控制手册:移动止损、最大回撤(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
2501_944521597 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
Patrick在香港8 小时前
同一行 strftime,两台机器跑出两种日期
python·datetime·时区·locale·日期处理
2601_967987378 小时前
用Python+OpenCV+YOLO写个游戏脚本:从自动瞄准到自动采集的保姆级教程
python·opencv·yolo·目标检测·游戏自动化
meiying88388 小时前
快递单号批量查询Python脚本:从手动到自动化的完整实现
开发语言·python·自动化
人工智能导论实践课8 小时前
【GUI桌面开发3】PyCharm配置外部工具
ide·python·pycharm
一千柯橘8 小时前
LangChain 的实时输出处理: stream_events 和 Streaming
python·langchain·agent
贾公子8 小时前
图片 AIGC 检测接入实战——URL 与 Base64 的取舍、体积校验与「你送过去的可能不是那张图」
python·aigc