python爬虫爬取视频,python 爬取在线视频

  python爬虫爬取视频,python 爬取在线视频

  指尖生活

  首先,环境使用Python 3.8

  路径

  其次,该模块使用导入请求pip安装请求

  内置模块,安装python环境就可以了。

  进口re

  导入json

  三、模块安装问题win R输入cmd输入安装命令pip安装模块名称(如果觉得安装速度慢,可以切换国产镜像源)

  模块安装问题:

  -如何安装python第三方模块:

  1.win R输入cmd,单击ok,输入安装命令pip安装模块名(pip安装请求)并按enter。

  2.在pycharm中单击终端,输入安装命令。

  -安装失败原因:

  -故障1: pip不是内部命令

  解决方法:设置环境变量。

  -故障二:出现大量红色信息(读取超时)。

  解决方法:由于网络链接超时,需要切换镜像源。

  https://pypi.tuna.tsinghua.edu.cn/simple,清华

  阿里云:https://mirrors.aliyun.com/pypi/simple/

  中国科学技术大学https://pypi.mirrors.ustc.edu.cn/simple/

  华中科技大学:https://pypi.hustunique.com/

  山东理工大学:https://pypi.sdutlinux.org/

  豆瓣:https://pypi.douban.com/simple/

  示例:pip 3 install-I https://pypi.doubanio.com/simple/模块名称

  -故障三:cmd显示已经安装或安装成功,但在pycharm中仍然无法导入。

  解决方案:可能安装了多个python版本(anaconda或python只能安装一个)。卸载一个就行了。

  或者pycharm中的python解释器设置不正确。

  4.在pycharm 1中配置python解释器。选择文件设置项目Python解释器。

  2.点击齿轮并选择添加。

  3.添加python安装路径

  5.如何在pycharm 1中安装插件?选择文件设置插件。

  2.点击Marketplace输入要安装的插件名称,例如:翻译插件输入翻译/中文插件输入中文。

  3.选择相应的插件,然后单击安装。

  4.安装成功后,会弹出重启pycharm的选项。点击确定,重启生效。

  不及物动词爬虫的基本流程思路:一般绿色视频网站的爬虫是什么?

  一种用于收集网页上数据的程序模拟浏览器向url地址发送请求以获得服务器响应数据

  收藏一个视频,然后收藏多个视频,最后收藏多个页面。

  (1).数据来源分析。1.确定您自己的需求以及从该网站收集哪些数据内容。

  2.利用开发者工具分析我们想要的视频内容,以及视频标题的来源。

  -F12或右键单击以选中并选择网络。

  a站本网站视频内容为m3u8视频格式。

  M3u8视频格式——知1不知2

  正常是一个视频内容的完整数据——2分18秒

  M3u8视频格式——它会把完整的视频内容分成很多小段(ts文件)。

  一小段可能需要5-10秒。

  所有视频剪辑ts都保存在一个m3u8文件中。

  M3u8视频内容,你看10秒,他就加载10秒的数据。

  通过分析,视频内容——ts文件片段——m3u 8文件链接——在网页源代码中。

  (2).代码实现步骤:发送请求获取数据,分析数据,保存数据。1.发送请求,请求视频播放页面的url地址。

  2.获取数据,网页源代码

  3.分析数据,提取出我们想要的m3u8链接地址和视频标题。

  4.发送请求,获取m3u8链接地址。

  5.获取数据,获取服务器返回的数据内容。

  6.分析数据并提取所有ts文件链接。

  7.保存数据,并发送请求以获取数据并将其保存为完整的视频内容。

  1.特殊字符

  2.保存数据后,播放有问题的视频内容。

  七。完整代码#导入数据请求模块-需要为第三方模块安装cmd pip安装请求。

  导入请求

  #导入常规模块-不需要内置模块

  进口re

  # Import json -不需要内置模块

  导入json

  #导入打印格式模块-不需要内置模块。

  从pprint导入pprint

  #确定请求的url地址

  link= https://www . acfun . cn/u/29946310

  #请求参数ctrl R选择内容,输入常规命令并单击Replace(。*?): (.*) $1: $2,

  数据={

  quickViewId :交流空间视频列表,

  请求ID: 3 ,

  ajaxpipe: 1 ,

  键入:视频,

  订单:最新,

  第页: 2 ,

  pageSize: 20 ,

  t: 1658842573436 ,

  }

  标题={

  #用户代理表示浏览器的基本身份用于伪装python代码

  用户代理: Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/101.0.0.0 Safari/537.36

  }

  #发送请求

  response _ 1=requests . get(URL=link,params=data,headers=headers)

  #获取数据打印(response_1.text)

  #解析数据

  video _ id _ list=re . find all( atomid。*?:*?(\d)。*?,response_1.text)

  打印(视频标识列表)

  对于视频标识列表中的视频标识:

  1.发送视频播放页面url地址的请求。

  模拟浏览器发送请求

  python代码如何实现模拟浏览器?

  使用请求报头来伪装报头。

  当您使用模块时,导入它,

  加表头相当于裸奔。

  Ers相当于衣服。

  先听听思路,课后了解一下,录播一下,自己写代码。

  收集多个数据——分析请求url的变化规律。

  #确定url地址

  URL=f https://www . acfun . cn/v/AC { video _ id }

  #模拟浏览器——直接在开发者工具里复制。

  标题={

  #用户代理表示浏览器的基本身份用于伪装python代码

  用户代理: Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/101.0.0.0 Safari/537.36

  }

  # Send request-response [200]:表示对象响应回复。响应200的状态代码表示请求成功。

  response=requests.get(url=url,headers=headers)

  #获取响应对象

  打印(响应)

  # 2.获取数据,并获取文本数据。响应对象文本数据打印(response.text)

  3.分析数据,提取我们想要的数据内容,选择最合适的方法和最好的方法来使用。

  -m3u8文件链接

  -视频标题

  Re css xpath,学会掌握这三个.你是一个爬虫工程师。

  这三个知识点都会在系统化的课程中教授。

  Re可以使用1,但不能使用2。

  Re.findall()查找我们想要所有数据内容。

  去哪里找什么资料?

  找标题(。*?)-AcFun弹幕视频网其中(。*?)。可以匹配任何字符。

  *可以匹配前面的字符0或无穷大。

  ?非贪婪匹配模式。*?通配符可以匹配除换行符之外的任何字符。S

  #提取视频标题

  title=re.findall( title(。*?)-AcFun弹幕视频网,response.text)[0]

  #提及视频m3u8信息

  html _ data=re . find all( window . pageinfo=window . video info=(。*?);,response.text)[0]

  打印(标题)

  #转换数据类型

  json_data=json.loads(html_data)

  # print format调用pprint文件中的pprint函数,知识点函数知识点pprint(json_data)

  # dictionary value根据冒号左边的内容[key],提取冒号右边的内容[value]。值字典是单引号,字符串是双引号。

  m3u8_url=\

  JSON . loads(JSON _ data[ current video info ][ ksplay JSON ])[ adaption set ][0][ re presentation ][0][ backup URL ][0]

  打印(m3u8_url)

  #发送获取数据的请求

  m3 u8 _ data=requests . get(URL=m3 u8 _ URL,headers=headers)。文本

  #用split()替换所有包含#E的内容进行拆分并返回列表

  m3u8_data=re sub(# e . * ,m3 u8 _ data)。拆分()

  对于m3u8_data中的ts:

  ts _ URL= https://tx-safety-video . acfun . cn/media cloud/acfun/acfun _ video/ ts

  #保存数据

  ts _ content=requests . get(URL=ts _ URL,headers=headers)。内容

  #模式ab保存方法A:添加保存B二进制

  # video\\ title .mp4 文件路径文件名后缀

  用open(video\\ title .mp4 ,mode=ab )作为f:

  #写入数据

  f.write(ts_content)

  打印(ts_url)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: