问题描述

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. Django魔法

    (●'◡'●)

  2. 欢乐C++ —— 2. 深复制与浅复制

    1. 简述 ​ 通俗点讲,深复制与浅复制一般对指针而言, ​ 深复制复制指针所指向的内容, ​ 浅复制复制指针的值. 2. 举例 ​ 栗子: ​ 当我们有现在有指针A指向一块数据,和指针B. 深复制- ...

  3. Mac下 eclipse target runtime com.genuitec.runtime 解决方法

    Mac下 eclipse target runtime com.genuitec.runtime 解决方法 解决步骤如下: 首先是找到工程项目一个名叫.settings的文件夹,里面有个叫 org.e ...

  4. HDU-1051 一个DP问题

    Problem Description There is a pile of n wooden sticks. The length and weight of each stick are know ...

  5. 在Keras中可视化LSTM

    作者|Praneet Bomma 编译|VK 来源|https://towardsdatascience.com/visualising-lstm-activations-in-keras-b5020 ...

  6. 【干货】Keras学习资源汇总

    目录: Keras简介 Keras学习手册 Keras学习视频 Keras代码案例 Keras&NLP Keras&CV Keras项目 一.Keras简介 Keras是Python中 ...

  7. PHP7内核(一):发展史

    PHP1 1994年,一位名叫Rasmus lerdorf的兄台为了在网上展示自己的履历和网页流量的统计,用Perl开发了一套脚本,后来因与日俱增的需求无法得到满足,lerdorf便使用c语言进行了重 ...

  8. LayUI制作日历工作记录簿

    标题不知道该如何取,大概就是用Lay UI的Table,制作一个日历,在日历上可以添加每天的工作简记录.记录下LayUI Table的一些用法,一些值得探索的地方在于日历生成后,给周末加背景色,当天加 ...

  9. 还不懂 ConcurrentHashMap ?这份源码分析了解一下

    上一篇文章介绍了 HashMap 源码,反响不错,也有很多同学发表了自己的观点,这次又来了,这次是 ConcurrentHashMap 了,作为线程安全的HashMap ,它的使用频率也是很高.那么它 ...

  10. 1-1. OSS/ALSA 声卡的驱动与配置和 Madplay 嵌入式播放器的移植

    报警子系统 一. OSS/ALSA 声卡的驱动与配置 声卡驱动中传统的OSS构架在02年被收购后即不开源,并且OSS的混音效果不好->因此ALSA构架孕育而生. ALSA(高级音频构架,目前应用 ...