问题描述

python是一种非常好用的爬虫工具。对于大多数的爬虫小白来说,python是更加简洁,高效的代码。今天就用实际案例讲解如何爬取动态的网站视频。

环境配置:python3:爬虫库request、json模块,Pycharm

爬虫的一般思路:分析目标网页,确定url—发送请求,获取响应—解析数据—保存数据

爬取目标:方便看视频

解决方案

第一步:分析网页类型,获取爬虫参数

分析网页:通过查看网页源代码搜索当前网页的一段文字发现为空,说明网页为动态的网页。

获取参数:通过谷歌审查元素依次点击Network,XHR,Headers,找到需要的三个个头部信息use-agent,cookie,url以及headers参数。

第二步:模拟浏览器发送请求,获取响应数据

利用requests的get()向服务器发送请求

第三步:解析数据--json模块:把json字符串转换为python可交互的数据类型

转换数据:利用json进行转换,json是python的内置模块,json可以把json字符串转换为python可交互的数据类型。

获取数据:通过观察,title是视频名,url是视频地址,提取这两个数据,并再次访问获得的url,得到视频数据。

第四步:保存数据,保存在目标文件夹中

创建文件夹,写入获取的视频数据。

代码如下

import json
url = 'https://haokan.baidu.com/videoui/api/videorec?tab=gaoxiao&act=pcFeed&pd=pc&num=20&shuaxin_id=1584866887932'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36',
'cookie': 'BAIDUID = 74DF3564617B2C9FA9D0468C96EA2D5B: FG = 1;BIDUPSID = 74DF3564617B2C9FA9D0468C96EA2D5B;PSTM = 1575894957;BDRCVFR[TfzreFuSob] = mk3SLVN4HKm;delPer = 0;PSINO = 6;H_PS_PSSID =;BDORZ = FFFB88E999055A3F8A630C64834BD6D0;BDSFRCVID = OV8sJeCCxG3HHcRuJgPnSaVvNIfB4Z1 - g_EP3J;H_BDCLCKID_SF = tR333R7oKRu_HRjYbb__ - P4DHUjHfRO2X5REVh7CfPOkeqOJ2Mt5yMkS0loZKhOXLK6pLqrY5q_MoCDzbpnp05tpexbH55uetn - f_U5;PC_TAB_LOG = haokan_website_page;Hm_lvt_4aadd610dfd2f5972f1efee2653a2bc5 = 1584866867;Hm_lpvt_4aadd610dfd2f5972f1efee2653a2bc5 = 1584866869;reptileData = % 7B % 22data % 22 % 3A % 2242da399b6855dc02a8c72001523e8685c0ec37b2f26178d68783bd941cca8e26e937dbe59953fb090211f372d6eb955dc20beb8396b045e5df4d725d5fedac7aaa415293534710428b39a3ce5851c795051c61beacdb88b1de6226323caf92f6a0c55a67f60dc0e50896f95dc05d54fa4803a75c5e3ba3751015d7b13e253544 % 22 % 2C % 22key_id % 22 % 3A % 2230 % 22 % 2C % 22sign % 22 % 3A % 22fd3d5c98 % 22 % 7D '} respons = requests.get(url,headers = headers)
text = respons.text
#print(respons.text) data = json.loads(text)#字典
#print(data)
list1=data['data']['response']['videos']
#print(list1) for id in list1:
print(id)
video_title = id['title']
video_url = id['play_url']
print(video_title,video_url)
print('下载')
video_data = requests.get(video_url,headers = headers).content ~~~with open('video\\' + video_title,'wb') as f:

结语

最后提醒大家爬虫程序规避网站经营者设置的反爬虫措施或者破解服务器防抓取措施,非法获取相关信息,情节严重的,有可能构成“非法获取计算机信息系统数据罪”。

如果想了解更多关于python的应用,可以私信我,不管你是零基础还是有基础都可以免费获取到自己相对应的学习礼包!包括Python软件工具和2019最新入门到实战教程,(http://t.cn/A6Zvjdun)复制到浏览器打开!

遇到自己喜欢的视频无法下载,python帮你解决的更多相关文章

  1. 文章要保存为TXT文件,其中的图片要怎么办?Python帮你解决

    前言 用 python 爬取你喜欢的 CSDN 的原创文章,保存为TXT文件,不仅查看不方便,而且还无法保存文章中的代码和图片. 今天教你制作成 PDF 慢慢看.万一作者的突然把号给删了,也会保存备份 ...

  2. 【转】python爬虫之腾讯视频vip下载

    本文转自如下:作者:jia666666 原文:https://blog.csdn.net/jia666666/article/details/82466553 版权声明:本文为博主原创文章,转载请附上 ...

  3. python中将已有链接的视频进行下载

    使用python爬取视频网站时,会得到一系列的视频链接,比如MP4文件.得到视频文件之后需要对视频进行下载,本文写出下载视频文件的函数. 首先导入requests库,安装库使用pip install ...

  4. Python爬虫:给我一个链接,快手视频随便下载

    前言 讲一下,文明爬虫,从我做起(1.文章中的程序代码仅供学习,切莫用于商业活动,一经被相关人员发现,本小编概不负责!2.请在服务器闲时运行本程序代码,以免对服务器造成很大的负担.) 1. 实现原理 ...

  5. 《精通Python网络爬虫》|百度网盘免费下载|Python爬虫实战

    <精通Python网络爬虫>|百度网盘免费下载|Python爬虫实战 提取码:7wr5 内容简介 为什么写这本书 网络爬虫其实很早就出现了,最开始网络爬虫主要应用在各种搜索引擎中.在搜索引 ...

  6. 《数据可视化之美》高清PDF全彩版|百度网盘免费下载|Python数据可视化

    <数据可视化之美>高清PDF全彩版|百度网盘免费下载|Python数据可视化 提取码:i0il 内容简介 <数据可视化之美>内容简介:可视化是数据描述的图形表示,旨在一目了然地 ...

  7. 如何用Camtasia将喜欢的视频做出复古的感觉

    不知道各位可有看老电影的习惯,我个人觉得一些老电影那种别具一格的画面感是非常吸引人的韵味,尽管其色彩不是很鲜艳,但是这种黑白的感觉,对于现在的我们,往往有着不一样的吸引力.于是,我就尝试着用Camta ...

  8. 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)

    马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...

  9. 离线pip下载Python包

    离线pip下载Python包   这几天搞Windows离线断网环境下安装Python包,配置环境,各种坑!做个记录,供以后查询吧.      # 生产环境  windows xp# python 2 ...

随机推荐

  1. Linux下反弹shell笔记

    0x00 NC命令详解 在介绍如何反弹shell之前,先了解相关知识要点. nc全称为netcat,所做的就是在两台电脑之间建立链接,并返回两个数据流 可运行在TCP或者UDP模式,添加参数 —u 则 ...

  2. ArcGIS中影像图去黑边

    通常情况下有些影像图的背景会显示黑色,所以需要将影像图的格式转换一下,将黑色背景转换为透明色.具体去除河边的步骤如下: 1.在catalog中,选中要转换的影像图: 2.右键——导出——将栅格导出为不 ...

  3. Thread wait notify sleep

    wait: 必须暂定当前正在执行的线程,并释放资源锁,让其他线程可以有机会运行 notify/notifyall: 唤醒因锁池中的线程,使之运行 wait与sleep区别 对于sleep()方法,我们 ...

  4. 17.用cmd创建maven web工程

    1.跳转到需要创建maven工程的目录,输入 mvn archetype:generate 2.找到webapp的那一项,输入它的序号(这里是10) 3.输入groupId,artifactId,ve ...

  5. A 组队参赛

    时间限制 : - MS   空间限制 : - KB  评测说明 : 1s,256m 问题描述 一年一度的ioiAKer大赛即将来临,何老板打算让信竞队的同学们组队参赛.信竞队共n名队员,他们的CF积分 ...

  6. vulnhub~DC-9

    首先对于整体的思路,网上有很多的教程,如果国内的不能满足建议‘fanqiang’,Google有很多大佬,各个部分都有详细的说明.但又由于每个人的环境都有所不同,所以会在同样的命令行执行后出现不同的错 ...

  7. Java String与char

    1. char类型 + char 类型 = 字符对应的ASCII码值相加(数字): char类型 + String 类型 = 字符对应的ASCII码值相加(数字) + String 类型: Strin ...

  8. Git Bash使用时有个end,无法进行其他操作

    如图: 遇到这种情况,按下q即可回到$命令界面.

  9. jdk1.8 新特性之Stream

    --------------------- 作者:码农农码一生 来源:CSDN 原文:https://blog.csdn.net/chenhao_c_h/article/details/8069128 ...

  10. 【php】面向对象(三)

    知识点关键词:FSCICATS一. f => final: a) 是一个修饰符,用来修饰类和成员方法 b) 使用final修饰符修饰的类不能被继承,使用final修饰符修饰的成员方法,不能被重写 ...