Python爬虫:二十行代码获取某知名网站高质量视频,带视频讲解

news/2024/5/14 8:09:53/文章来源:https://blog.csdn.net/fei347795790/article/details/121633885

文章目录

  • 一、写在前面
  • 二、爬虫原理
  • 三、案例实现
  • 四、视频讲解

一、写在前面

兄弟们,自从上次爬虫热门后,我就没发高质量爬虫了,看的人都少了,唉~

原来你们都是这样的人
在这里插入图片描述

二、爬虫原理

  • 作用: 批量获取互联网数据(文本, 图片, 音频, 视频)

  • 本质: 一次次的请求与响应img

  • 请求方式 大多数为(get/post)

方法描述
GET请求页面,并返回页面内筒
HEAD类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
POST大多数用于提交表单或上传文件,数据包含在请求体中
PUT从客户端向服务器传送的数据取代指定文档中的内容
DELETE请求服务器删除指定的页面
CONNECT把服务器当做跳板,让服务器代替客户端访问其他网页
OPTIONS允许客户端查看服务器的性能
TRACE回显服务器收到的请求,主要用于测试或诊断
  • 请求头 Request Headers (键值对的形式) 请求的一些配置信息告诉服务器,让服务器判断这些配置信息解析

    请求头,用来说明服务器要使用的附加信息,比较重要的信息有Cookie,Referer,User-Agent等。

    • Accept: 请求报头域,用于指定客户端可接受哪些类型的信息。
    • Accept - Language: 指定客户端可接受的语言类型。
    • Accept-Encoding: 指定客户端可接受的内容编码。
    • Host:用于指定请求支援的主机IP和端口号,其内容为请求URL的原始服务器或网关的位置。从HTTP1.1版本开始,请求必须包含此内容。
    • Cookie: 也常用复数形式Cookies,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据。它的主要功能是维持当前访会话。例如,我们输入用户名和密码成功登录某个网站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是Cookies的功劳。Cookies里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头加上Cookies 并将其返回给服务器,服务器通过Cookies识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登陆之后才能看到的网页内容。
    • Referer: 此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应处理,如做来源统计、防盗链处理等。
    • User-Agent: 简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。再做爬虫时加上此信息,可以伪装为浏览器:如果不加,很容易可能被识别出为爬虫。
    • Content-Type: 也叫互联网媒体类型(Internet Media Type)或者MIME类型,在HTTP协议消息头中,它用来表示具体请求中的媒体类型信息。例如,text/html 代表HTML格式,image/gif 代表GIF图片,application/json 代表JSON类型,更多对应关系可以查看此对照表:http://tool.oschina.net/commons
  • Response中包含什么内容?

    • 响应,由服务端返回给客户端,可以分为三部分:响应状态码(Response Status Code)、响应头(Response Headers)、响应体(Response Body)

    • 1、响应状态码

      响应状态码表示服务器的响应状态,如200代表服务器正常响应,404代表页面未找到,500代表服务器内部发生错误。在爬虫中,我们可以根据状态码来判断服务器响应状态,如状态码为200,则证明成功返回数据,在进行进一步的处理,否则直接忽略。

    • 2、响应头

    • 3、响应体

      最重要的当属响应体的内容了。响应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的HTML代码;请求一张图片时,它的响应体就是图片的二进制数据。我们走爬虫请求网页后,要解析的内容就是响应体, 在浏览器开发者工具中点Preview,就可以看到网页的源代码,也就是响应体的内容,它是解析的目标。

      在做爬虫时,我们主要通过响应体得到的网页的源代码、JSON数据等,然后从中做相应内容的提取。

      用http请求库向服务器发送一个请求,然后得到这个response,把这个响应体里的内容拿下来,然后解析就可以拿到我们的数据了。

三、案例实现

  1. 找到目标网址
  2. 发送网络请求
  3. 获取数据
  4. 筛选数据
  5. 保存数据
import requests
import pprint# 统一替换
# 1.选中要替换的内容
# 2.按住Ctrl+R 注: 点亮星号* / 2021版本一下 点亮Regex
# 3.在第一个框里面输入(.*?): (.*)
# 4.在第二个框里面输入'$1': '$2',
# 5.点击REPLACE ALL
headers = {'cookie': '','referer': 'https://weibo.com/tv/channel/4379160563414111/editor','user-agent': '',
}
data = {'data': '{"Component_Channel_Editor":{"cid":"4379160563414111","count":9}}'
}
url = 'https://www.weibo.com/tv/api/component?page=/tv/channel/4379160563414111/editor'
json_data = requests.post(url=url, headers=headers, data=data).json()
ccs_list = json_data['data']['Component_Channel_Editor']['list']
next_cursor = json_data['data']['Component_Channel_Editor']['next_cursor']
for ccs in ccs_list:oid = ccs['oid']title = ccs['title']data_1 = {'data': '{"Component_Play_Playinfo":{"oid":"' + oid + '"}}'}# 1. 找到目标网址url_1 = 'https://weibo.com/tv/api/component?page=/tv/show/' + oid# 2. 发送网络请求# 2.1 构造请求头# 2.2 构造请求参数# 3. 获取数据json_data_2 = requests.post(url=url_1, headers=headers, data=data_1).json()# 4. 筛选数据dict_urls = json_data_2['data']['Component_Play_Playinfo']['urls']video_url = "https:" + dict_urls[list(dict_urls.keys())[0]]print(title + "\t" + video_url)# 5. 保存数据video_data = requests.get(video_url).contentwith open(f'video\\{title}.mp4', mode='wb') as f:f.write(video_data)print(title, "爬取成功................")

四、视频讲解

Python爬虫:批量爬取某知名网站高质量视频

兄弟们 给你们送个女朋友,冲鸭~

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_732857.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

死党暗恋校花失败,我爬了这个网站发给他分分钟治愈,男人的快乐往往很简单(每天一遍,忘却初恋)

死党一直暗恋校花,但是校花对他印象也不差,就是死党一直太怂了,不敢去找校花,直到昨天看到校花登上了校董儿子的豪车,死党终于彻底死心,大醉一场,作为他的兄弟,我怎么能看他郁郁不振…

要不是这个沙雕网站,我这辈子都见不到这么多沙雕网站!

点击上方SQL数据库开发,关注获取SQL视频教程SQL专栏SQL数据库基础知识汇总SQL数据库高级知识汇总来源:差评(chaping321)到目前为止, 大多数已知的网站已经得到了网民们详细的解读。功能详尽的同城网站,仿佛…

为了防止这个网站消失,我连夜用Python离线了上万张图片

文章目录吐槽一下事前准备1、环境配置**2、模块使用3、如何配置pycharm里面的python解释器?4、pycharm如何安装插件?5、基本流程代码解析1、模块导入2、发送请求3、获取数据4、解析数据5、保存数据吐槽一下 之前好多高质量网站都不见了,肯定是你们整活整多了&…

除了 P 站,程序员居然还喜欢上这些网站?快来摸鱼呀!

说到p站,估计不知道的人已经很少了,除了p站还有哪些站?应该很多人思考过这个问题了 二次元可是有ABCDEFGHJKNMT站…等等诸多圣地的!外面的世界很精彩,别抱着一个站啃了~ 1、A站 Acfun AcFun,中国第一家…

干货 | 程序员必备的16个实用的网站

最近看到很多网友分享了好多比较酷炫的网站,好多都放进小艾的收藏夹了,(__) 嘻嘻……看的我也忍不住想分享了,因为是IT行业,所以分享几个收集的比较实用而且酷炫的网站O(∩_∩)O~ 1.“Hello World”大全 网站一共收集了大约481种…

别去送si了!Selenium 与 Puppeteer 能被网站探测的几十个特征

很多人喜欢使用Selenium 或者 Puppeteer(Pyppeteer)通过模拟浏览器来编写爬虫,自以为这样可以不被网站检测到,想爬什么数据就爬什么数据。 但实际上,Selenium 启动的浏览器,有几十个特征可以被网站通过 JavaScript 探测到。Puppe…

Yii2.0 网站开发流程记录 反馈网页统计

2019独角兽企业重金招聘Python工程师标准>>> 这里不再多说,欢迎各位踊跃提意见,书籍第一部分草稿在: http://download.csdn.net/detail/bubifengyun/9541785 后续还在添加中。 谢谢。转载于:https://my.oschina.net/bubifengyun/b…

java 企业门户网站 源码 自适应响应式 freemarker 静态引擎 html5 SSM

前台: 支持五套模版, 可以在后台切换系统介绍:1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html2.因为是生成的html,所以访问速度快,轻便,对服务器负担小3…

我的天,适合程序员的史上醉强“摸鱼”网站!!!

分享8个提升学习能力以及工作效率的神奇网站,谁用谁知道。 1、 IData-知识检索 大学生涯中大家都会用到各种文献资料往往都是从知网下载的,但如果不在学校或者学校没有购买知网权限,我们就需要一个新的文献下载工具——IData。 如果需要查询相…

Crazy!这个算法可视化网站真的是太棒了!

最近在学习算法的时候,发现一个非常不错的编程网站,特别适合学习算法,感官体验十分不错。 这个网站是「VisuAlgo」,它是一个算法可视化网站。 谁这么良心,免费搞这么优质的动画算法教程网站呢? 这个网站是…

使用LNMP架构部署动态网站环境。 Linux+PHP

1、配置php服务 (1)yasm源码包,其解压、编译、安装过程. (2)libmcrypt源码包,其解压、编译、安装过程. (3)libvpx源码包,其解压、编译、安装过程.libvpx源码包的后缀是.t…

程序员接私活月入2万?分享10个接私活的网站快收藏~

最近,在和身边的程序员聊天中,听不少朋友分享了自己接私活的经历,那收入真是让我“瞠目结舌” … 程序员A:我Java程序员,工作两年,月薪13K,私活20K。 程序员B:之前在单位上班&#…

网站title标题被改并被百度网址安全中心提醒的解决办法

国庆假日期间我们Sine安全接到众多网站站长求助网站标题被改导致在百度搜索中百度安全中心提醒被拦截,导致网站正常用户无法浏览网站被跳转到一些菠菜du博网站,而且很明显的一个特征就是在百度中搜索关键词的网站快照标题被修改成了一些与网站本身内容不相关的页面,…

github网站介绍、并使用git命令管理github(详细描述)

本章学习: 1)熟悉github网站2)通过git命令远程管理github,3)git命令使用ssh key密钥无需输入账号密码 1.首先我们来熟悉github网站 1.1 注册github 登录http://github.com/,然后点击sign up,来注册账户: 注册好了,以及验证邮箱后,然后进入github主页: 1.2点击start a project(启…

十周后,62%的PHP网站将运行在一个不受支持的PHP版本上

根据W3Techs的统计数据,目前约有78.9%的网站使用PHP开发。\\但是,PHP 5.6.x的安全支持将在2018年12月31日正式停止,这标志着对古老的PHP 5.x分支版本的支持都将结束。\\也就是说,从明年开始,大约62&#xf…

常见的网站服务器架构有哪些?

初始阶段的网站架构一般来讲,大型网站都是从小型网站发展而来,一开始的架构都比较简单,随着业务复杂和用户量的激增,才开始做很多架构上的改进。当它还是小型网站的时候,没有太多访客,一般来讲只需要一台服…

快速用Discuz搭建论坛网站教程

Discuz! 是全球成熟度最高、覆盖率最大的论坛软件系统之一。自 2001 年 6 月面世以来,Discuz! 已拥有 15 年以上的应用历史和 200 多万网站用户案例。目前,Discuz! 已经发展成为一个以社区为基础的专业建站平台,让论坛(BBS&#x…

刚学编程的程序员必备这5大编程网站,你知道几个?

一个好的网站,就是程序员学编程的基地。虽说新手程序员也许知道一些在线编程网站,但是质量上乘的编程网站又知道几个呢?下面就来给大家推荐5个质量上乘的编程网站:0、LeetcodeLeetCode是大名鼎鼎的在线刷题网站,通过该网站的刷题…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性(Avaliability)描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间(故障时间)故障修复时间点-故障发现(报告)时间点…

仿海康网页版做一个在线的实时监控网站(2)-- 视屏显示和云台控制

在上一篇博客仿海康网页版做一个在线的实时监控网站(1)中讲了侧边站点选择栏的生成,这篇博客主要说一下视屏插件的摆放和一些云台控制的操作函数 首先海康的摄像头可以找他们要一个网页版的开发Demo,如果没有我提供一个&#xff1…