当前位置: 首页 > news >正文

爬虫常用模板

        这里记录的是我学习爬虫自己用到的一些东西,方便以后打开直接使用。我会不定期的往里面添加内容。 

爬虫工具库-spidertools.cn

协程

        模板1(通过loop):

async def download()
    pass


async def main():
    # 创建任务队列
    tasks = []

    for..........{     
        # 使用for循环调用其它异步函数,添加到任务队列中
        asks.append(asyncio.create_task(download()))
    }

    # 打包提交队列
    await asyncio.gather(*tasks)


if __name__ == '__main__':
    # 创建loop
    loop = asyncio.get_event_loop()

    # 通过loop执行异步函数
    loop.run_until_complete(main())

         模板2(通过asyncio):

async def download()
    pass


async def main():
    # 创建任务队列
    tasks = []

    for..........{     
        # 使用for循环调用其它异步函数,添加到任务队列中
        asks.append(asyncio.create_task(download()))
    }

    # 等待任务结束
    await asyncio.wait(tasks)


if __name__ == '__main__':
    asyncio.run(main()) 

python运行js模板

import execjs


# 打开本地js文件,读取文件内容后通过execjs.compile函数将其转换成js代码暂存在ctx中
with open('baidu.js', 'r', encoding='utf-8') as f:
    ctx = execjs.compile(f.read())


# 使用 ctx.call 函数来调用JS代码中的函数
# 第一个参数:想要调用的js中的函数
# 第二个参数:传入的值
res = ctx.call('hello', lis)

ffmpeg视频合成

        在爬取视频的时候通常是通过m3u8来获取到视频的ts切片,需要把他们全部合成为一个视频切片。

def concat():
    video = 'output.mp4'    # 视频输出地址
    ts_locat = './视频切片'      # ts文件路径 

    # 获取所有的 .ts 文件
    ts_files = [f for f in os.listdir(ts_locat) if f.endswith('.ts')]
    ts_files.sort()  # 排序以确保正确的顺序

    # 将排序好的ts文件目录按行依次写入到一个txt文本中
    with open('concat_list.txt', 'w', encoding='utf-8') as f:
        for ts_file in ts_files:
            f.write(f"file '{ts_locat+ '/' +ts_file}'\n")

    # 使用 ffmpeg 读取文本中的ts文件目录地址,按顺序拼接所有的 .ts 文件
    ffmpeg.input('concat_list.txt', format='concat', safe=0).output(video, c='copy').run()

相关文章:

  • css画个熊猫
  • C语言:刷题笔记
  • MyCat
  • ant vue design日期组件date-picker自定义快捷选择日期封装
  • OpenXR Monado创建Swapchain和生成纹理
  • Verilog基础,原码,反码与补码的概念
  • 透明加密为什么是最佳选择,10款透明加密软件推荐
  • CGLIB 是什么
  • Linux驱动(四):Linux2.6字符设备驱动及GPIO子系统
  • [数据集][目标检测]鲜花检测数据集VOC+YOLO格式25215张106类别
  • 【2024-2025源码+文档+调试讲解】微信小程序的城市公交查询系统
  • 三级_网络技术_59_应用题
  • 机器学习:svm算法原理的优缺点和适应场景
  • 【Python】数据分析分类图可视化
  • C++入门day3-面向对象编程(中)
  • c++ unordered_set的用法
  • 登录-异步请求用户数据无法保存-bug
  • Django+Vue宠物服务管理系统的设计与实现
  • Vue(十) 过渡动画、配置代理服务器,解决请求跨域的问题
  • 项目策划书六度自由双足机器人
  • 总书记考察的上海“模速空间”,是一个怎样的空间?
  • 从咖啡节到话剧、演唱会,上海虹口“文旅商体展”联动促消费
  • 解放日报头版:人民城市共建共享展新卷
  • 事关稳就业稳经济,10张海报看懂这场发布会的政策信号
  • 榆林市委常委王华胜已任榆林市政协党组书记
  • 邮轮、无人机、水上运动……上海多区推动文旅商体展融合发展