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

电子商务网站建设与完整实例千锋教育可靠吗

电子商务网站建设与完整实例,千锋教育可靠吗,建设招标网网站,wordpress 修改bannerpython爬虫-爬取视频 本次爬取,还是运用的是requests方法 首先进入此网站中,选取你想要爬取的视频,进入视频页面,按F12,将网络中的名称栏向上拉找到第一个并点击,可以在标头中,找到后续我们想要…

python爬虫-爬取视频

在这里插入图片描述

  • 本次爬取,还是运用的是requests方法

  • 首先进入此网站中,选取你想要爬取的视频,进入视频页面,按F12,将网络中的名称栏向上拉找到第一个并点击,可以在标头中,找到后续我们想要的一些信息。
    在这里插入图片描述

  • 爬取视频的步骤大致分为

    • 1、UA伪装
    • 2、获取url
    • 3、发送请求
    • 4、获取响应的数据
    • 5、数据解析
      • 获取存放视频和音频数据的"window.playinfo"文本内容
      • 分别获取视频和音频的url
      • 将获取到的视频和音频数据存放在两个不同的文件中
  • UA伪装

    • 找到Cookie并复制—>用户登陆此网站的个人Cookie信息,每个人的都不同

    • 找到Referer并复制—>每个网站的防盗链

    • 找到User-Agent并复制—>标头的最下面
      在这里插入图片描述

在这里插入图片描述

# UA伪装head = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0","Referer":"https://search.bilibili.com/all?","Cookie":"buvid_fp_plain=undefined; DedeUserID=121991448; DedeUserID__ckMd5=9e0883af22947c47; CURRENT_BLACKGAP=0; buvid4=B52817A7-548A-24AF-F6D1-671539F8D84A46089-022112911-pIOydL%2Bx%2FtJ0KaVCrqVHDnapk68hRLXn0o6mnH1vuNcEyHPeCVTwrg%3D%3D; is-2022-channel=1; enable_web_push=DISABLE; header_theme_version=CLOSE; rpdid=|(m))m~uRmm0J'u~|RJlulkm; FEED_LIVE_VERSION=V_WATCHLATER_PIP_WINDOW2; PVID=1; fingerprint=d26d60ed0ec0d0f7a6b5056693a8acbb; buvid_fp=d26d60ed0ec0d0f7a6b5056693a8acbb; CURRENT_QUALITY=80; buvid3=7F1C4251-972B-A6E5-38AD-63626520698301889infoc; b_nut=1733312401; _uuid=CC9A4FE3-ECB2-A4DD-710310-83446BD14310A02817infoc; home_feed_column=5; browser_resolution=1707-946; bp_t_offset_121991448=1012262974930288640; b_lsid=C3B8510D4_193F8977A84; bmg_af_switch=1; bmg_src_def_domain=i1.hdslb.com; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MzUzMDE2OTgsImlhdCI6MTczNTA0MjQzOCwicGx0IjotMX0.9UDClgiB9GUJu1e6ZsyN6e-qeKtxbDOL1V8OdLFuIJo; bili_ticket_expires=1735301638; SESSDATA=43e92030%2C1750594499%2C7d892%2Ac1CjDdpJOFi23g70Eic2Tw3nEMZnLYzkVoT_5Nm4swH5FTg8uq5rFABX3tQAXj3SfJX0USVkFXWGRFSlhwS0hHWHdoc0tzLVBhVEZJWWI4OWdxeVZJLTBUdldEY2lZS1dOUmFJSTJwYklaM0ktVjJYb0lJZW9vdTcyWUlLOXJBM0h0VERtWWF1RzhBIIEC; bili_jct=d581670c772ec7051f16a05ec30fcb8b; sid=79g6fnjf; CURRENT_FNVAL=4048"}
  • 获取url

    • 可以在标头中看到请求URL
      在这里插入图片描述
    url ="https://www.bilibili.com/video/BV1N84y1P7en/?spm_id_from=333.337.search-card.all.click&vd_source=15b581d46c0893c3904b6158b122aca5"
    
  • 发送请求

    • 可以在标头中看到请求方式,这里的请求方式是GET方法
      在这里插入图片描述
    # 发送请求,这里的请求方式是get方法
    response = requests.get(url, headers = head)
    
  • 获取响应的数据

    • 这里使用requests中的response.text方法
    # 获取响应的数据
    res_text = response.text
    
  • 数据解析

    • 使用 lxml 库中的 etree 方法
    • 并将获取到的数据写入到一个html的文件中,进入这个文件可以通过浏览器打开,查看是否是我们将要获取视频的页面
    tree = etree.HTML(res_text)with open("bili2.html", "w", encoding="utf-8") as f:f.write(res_text)
    
    • 获取存放视频和音频数据的"window.–playinfo–"文本内容

      • 因为视频和音频的数据都存在window.–playinfo–中,因此我们需要在元素栏下通过标签定位到它,但是我们只需要其内容
      • 因为window.–playinfo–的内容是一个大json字符串,所以我们可以通过json.loads的方法将它变成一个字典,方便后面通过键来取视频和音频的数据
        在这里插入图片描述
      base_info = "".join(tree.xpath("/html/head/script[4]/text()"))[20:]
      info_dict = json.loads(base_info)
      
    • 分别获取视频和音频的url

      • 在元素栏中可以看出window.–playinfo–的内容太多了,不利于我们寻找视频和音频的数据,我们可以在网络栏下,名称中第一个数据的响应中也可以找到,耐心一点向下慢慢通过标签找到window.–playinfo–,再在其中找到视频和音频的baseUrl
      • 注意也可以使用Ctrl+f进行输入查找速度更快,更利于我们排除并查找
      • 获取后,再次通过get请求方式,发送请求
      • 注意:图片,视频和音频都是二进制内容,所以用content属性获取
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述
      video_url = info_dict["data"]["dash"]['video'][0]["baseUrl"]
      audio_url = info_dict["data"]["dash"]['audio'][0]["baseUrl"]video_content = requests.get(video_url, headers=head).content
      audio_content = requests.get(audio_url, headers=head).content
      
  • 最后将获取到的视频和音频的数据分别存放在两个不同的文件中,视频可以是MP4或者是wmv格式,音频是MP4格式

with open("video2.wmv", "wb") as f:f.write(video_content)
with open("audio2.mp4", "wb") as fp:fp.write(audio_content)

完整代码

import requests
from lxml import etree
import jsonif __name__ == '__main__':# UA伪装head= {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0","Referer": "https://search.bilibili.com/all?","Cookie": "buvid_fp_plain=undefined; DedeUserID=121991448; DedeUserID__ckMd5=9e0883af22947c47; CURRENT_BLACKGAP=0; buvid4=B52817A7-548A-24AF-F6D1-671539F8D84A46089-022112911-pIOydL%2Bx%2FtJ0KaVCrqVHDnapk68hRLXn0o6mnH1vuNcEyHPeCVTwrg%3D%3D; is-2022-channel=1; enable_web_push=DISABLE; header_theme_version=CLOSE; rpdid=|(m))m~uRmm0J'u~|RJlulkm; FEED_LIVE_VERSION=V_WATCHLATER_PIP_WINDOW2; PVID=1; fingerprint=d26d60ed0ec0d0f7a6b5056693a8acbb; buvid_fp=d26d60ed0ec0d0f7a6b5056693a8acbb; CURRENT_QUALITY=80; buvid3=7F1C4251-972B-A6E5-38AD-63626520698301889infoc; b_nut=1733312401; _uuid=CC9A4FE3-ECB2-A4DD-710310-83446BD14310A02817infoc; home_feed_column=5; browser_resolution=1707-946; bp_t_offset_121991448=1012262974930288640; b_lsid=C3B8510D4_193F8977A84; bmg_af_switch=1; bmg_src_def_domain=i1.hdslb.com; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MzUzMDE2OTgsImlhdCI6MTczNTA0MjQzOCwicGx0IjotMX0.9UDClgiB9GUJu1e6ZsyN6e-qeKtxbDOL1V8OdLFuIJo; bili_ticket_expires=1735301638; SESSDATA=43e92030%2C1750594499%2C7d892%2Ac1CjDdpJOFi23g70Eic2Tw3nEMZnLYzkVoT_5Nm4swH5FTg8uq5rFABX3tQAXj3SfJX0USVkFXWGRFSlhwS0hHWHdoc0tzLVBhVEZJWWI4OWdxeVZJLTBUdldEY2lZS1dOUmFJSTJwYklaM0ktVjJYb0lJZW9vdTcyWUlLOXJBM0h0VERtWWF1RzhBIIEC; bili_jct=d581670c772ec7051f16a05ec30fcb8b; sid=79g6fnjf; CURRENT_FNVAL=4048"}# 1、指定urlurl ="https://www.bilibili.com/video/BV1N84y1P7en/?spm_id_from=333.337.search-card.all.click&vd_source=15b581d46c0893c3904b6158b122aca5"# 2、发送请求response = requests.get(url, headers = head)# 3、获取响应的数据res_text = response.text# 4、数据解析tree = etree.HTML(res_text)with open("bili2.html", "w", encoding="utf-8") as f:f.write(res_text)base_info = "".join(tree.xpath("/html/head/script[4]/text()"))[20:]info_dict = json.loads(base_info)video_url = info_dict["data"]["dash"]['video'][0]["baseUrl"]audio_url = info_dict["data"]["dash"]['audio'][0]["baseUrl"]video_content = requests.get(video_url, headers=head).contentaudio_content = requests.get(audio_url, headers=head).contentwith open("video2.wmv", "wb") as f:f.write(video_content)with open("audio2.mp4", "wb") as fp:fp.write(audio_content)

注意:video2.wmv和audio2.mp4视频和音频文件是分开的,故此需要借助其他一些剪辑工具进行合并比如剪映,再次就不展示了,可以自行尝试
在这里插入图片描述
需要进入到文件夹进行打开视频和音频
仅教学爬取使用,请合法爬取。

http://www.hkea.cn/news/483390/

相关文章:

  • 2018什么做网站百度网盘网页版入口
  • 深圳福田大型商城网站建设石家庄最新疫情最新消息
  • 网站版面结构chatgpt 网站
  • 网站后期推广是谁来做广州百度推广开户
  • 不上此网站枉做男人免费制作网站平台
  • 防红短链接生成佛山抖音seo
  • 网站建设php带数据库模板站长工具四叶草
  • 做网站客户拖着不验收店铺推广渠道有哪些方式
  • 站群系统哪个好用怎样进行seo推广
  • 淄博网站建设方案网络推广是做什么的
  • 网站建设销售工作职责seo平台怎么样
  • 免费的网站给一个百度seo优化服务项目
  • 现代广告创意设计郑州百度网站优化排名
  • 兰州网站建设哪家专业谷歌seo网站推广
  • 崇信门户网站留言回复上优化seo
  • 网站建设费用有哪些站长工具搜索
  • 云主机能干什么独立站seo怎么做
  • 苏州专业网站建设设计公司免费发布推广信息的b2b
  • 空间 两个网站网络推广培训班
  • 零基础学做网站推广公司简介
  • 公司做网站最好引擎搜索器
  • 济南手工网站建设北京百度seo服务
  • 网站建设原创百度seo官网
  • 徐州企业网站建设衡阳seo服务
  • 网站自然排名优化seo专员是什么职业
  • 视频网站制作广告代理公司
  • wordpress主题域名授权密钥生成镇海seo关键词优化费用
  • 北京东直门+网站建设汕头seo外包平台
  • 长沙 做网站企业网络组网设计
  • 北京哪家做网站优化产品seo基础优化