大数据 爬虫Python AI SqlPython编程

十五行Python代码实现批量下载好看的视频,嘎嘎好看

2022-03-23  本文已影响0人  傻逼平台瞎几把封号

话说人生苦短,我用Python。

如果学python不是为了下载这些视频,那将毫无意义!


啊呸,老色批

咳咳,我们开始正题。

一、事前前奏

首先没装Python、pycharm的铁子先自己安装一下,我就不写安装了。

然后就是模块了,还是爬虫老大件 requests ,直接 pip 安装即可,requests 是数据请求模块。

win+r 打开运行框输入 cmd 按回车,在弹出来的命令提示符窗口输入 pip install requests 回车即可安装成功。

镜像源

清华: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/

安装方式

例如

pip3 install -i https://pypi.doubanio.com/simple/ 模块名

如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
  2. 点击齿轮, 选择add。
  3. 添加python安装路径

pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)
  2. 点击 Marketplace 输入想要安装的插件名字,比如:翻译插件 输入 translation,汉化插件 输入 Chinese
  3. 选择相应的插件点击 install(安装) 即可
  4. 安装成功之后是会弹出重启pycharm的选项,点击确定,重启即可生效。

二、正文

前奏完了,我们直接进入主题…

地址我把关键的删掉了,第一个 v.6 第二个 haokan.baidu

1、思路流程

我们怎么去实现一个pa虫案例?

每个网站数据结构都是不一样的,需要自己重新去分析去抓包,但pa虫基本就这个流程。

1、数据来源分析

2、代码实现过程

2、代码展示

首先导入模块

import requests
import re

re是正则表达是模块,内置的,不用安装。只要安装 requests 就好了。

发送请求

对于刚刚分析得到url地址发送请求

I. 请求url网址 [理解为电话号码];
II. 请求方式;
III. headers伪装需要加什么参数、请求头、字典数据类型、键值对形式;

for page in range(26, 29):
    print(f'====================================正在采集第{page}页数据内容====================================')
    url = f'https://minivideo/getMiniVideoList.php?act=recommend&page={page}&pagesize=25'
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36'
    }
    response = requests.get(url=url, headers=headers)

<Response [200]> 返回response响应对象 200 状态码表示请求成功。

image

获取数据

获取服务器返回response数据

response.text 获取响应体文本数据           字符串数据类型
response.json() 获取响应体json字典数据     字典数据类型

如果返回数据是一个完整 json 数据格式,可以直接获取 response.json() 为了方便之后提取内容。
字典取值更方便,可以直接根据键值对提取数据内容,根据冒号左边的内容,提取冒号右边的内容。

先取 content 再取list ,返回的就是列表数据。

print(response.text)
print(response.json()['content']['list'])

image

这个返回的列表就包含了视频的数据信息,后面的地址我就没截图了,我怕~

image

解析数据

提取我们想要内容、视频播放url地址以及视频标题。

for index in response.json()['content']['list'][14:]:
    title = index['title']
    play_url = index['playurl']  # 快速复制 ctrl + D
    new_title = re.sub(r'[\/:*?"|<>]', '', title)
    print(title, play_url)

保存数据

video_content = requests.get(url=play_url).content
with open('video\\' + new_title + '.mp4', mode='wb') as f:
    f.write(video_content)
print('视频保存完成: ', title, play_url)

补充

json获取数据

import requests
import re
import json
url = 'https://com/web/search/api?pn=4&rn=10&type=video&query=%E7%BE%8E%E5%A5%B3'
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36'
}
json_data = requests.get(url=url, headers=headers).json()
for index in json_data['data']['list']:
    index_url = index['url']
    html_data = requests.get(url=index_url, headers=headers).text
    video_info = re.findall('window.__PRELOADED_STATE__ = (.*?);.*?document', html_data)[0]
    json_data_1 = json.loads(video_info)
    title = json_data_1['curVideoMeta']['title']
    video_url = json_data_1['curVideoMeta']['clarityUrl'][-1]['url']
    print(title, video_url)

3、结果展示

在这里插入图片描述 image

兄弟们,今天的分享就到这里,记得点赞收藏!

image
上一篇 下一篇

猜你喜欢

热点阅读