zoukankan      html  css  js  c++  java
  • python爬取梨视频

    python爬虫程序,下载梨视频到本地

    环境搭建

    关于python的介绍可以参考:python简介
    python安装参考:Python安装以及版本检测
    pycharm安装可以参考:PyCharm的安装和破解
    pip安装参考:添加链接描述
    request安装:pip install request
    urllib安装:pip install urllib

    需求分析

    梨视频首页

    具体实现

    通过两次请求

    源代码

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Created by xiaoming
    
    # 本模块的功能:<>
    from urllib.request import *
    from requests import *
    from re import *
    from os import *
    from random import *
    # makedirs('视频')
    titlep = []
    def single_page(url,name,video_num):
        if path.exists(name):
            pass
        else:
            makedirs(name)
    
        response = get(url)
    
        response = response.text
    
        rep = findall('categoryem.*?href="video(.*?)"',response,S)
        # print(rep)
        j = 0
        for i in rep:
            j += 1
            i = 'https://www.pearvideo.com/video' + i
            ori_video_url = one_video(i)
            print('正在下载第',j,'个视频...')
            suiji = random()
            full_name = name+'/' + titlep[0] + '.mp4'
            # full_name = name+'/' + str(suiji)[2:] + '.mp4'
            urlretrieve(ori_video_url, full_name)
            print('成功保存视频: ',full_name)
            if j == video_num:
                break
    '''
    当你的才华还撑不起你的野心时,那你就应该静下心来学习
    当你的能力还驾驭不了你的目标时,那就应该沉下心来历练
    '''
    def one_video(url):
        '''
        梨视频网站,传递一个单个视频页面,返回一个视频的原始地址
        :param url:
        :return:
        '''
        response = get(url)
    
        response = response.text
    
        # print(response)
    
        rep = findall(r'https://video.pearvideo.com/mp4/(.*?)mp4', response, S)
    
        titlee = findall(r'class="video-tt".*?>(.*?)</h1>', response, S)
        for i in titlee:
            titlep.clear()
            titlep.append(i)
        print(titlep)
        # print(rep)
    
        for i in rep:
            i = 'https://video.pearvideo.com/mp4/' + i + 'mp4'
            print(i)
            return i
    
    
    def main():
        mulu = {
            '新知':'10',
            '社会':'1',
            '世界':'2',
            '体育':'9',
            '生活':'5',
            '科技':'8',
            '娱乐':'4',
            '财富':'3',
            '汽车':'31',
            '美食':'6',
            '音乐':'59',
        }
        # 新知 社会 世界 体育 生活 科技 娱乐 财富 汽车 美食 音乐 拍客
        url = 'https://www.pearvideo.com/category_'
    
        for i in mulu:
            print(i,end=" ")
        print()
        choice = input("请选择需要的视频类型:")
        num = mulu[choice]
        url = url + num
    
        video_num = int(input("请输入要下载视频的数量:"))
        single_page(url,choice,video_num)
    
    
    main()
    
    
  • 相关阅读:
    模板实现一个通用栈
    服务器开发
    objectc获取文件各项属性方法
    Visual C++ MFC 中常用宏的含义
    symbian获取中文的拼音
    sip协议的功能及其应用
    【转】MySQL分区的简单实例,用于解决大数据表的问题
    Symbian c++ 在3版中实现并动态配置开机自启动
    (转)如果你也喜欢用goto
    C++实现查找汉字拼音首字母
  • 原文地址:https://www.cnblogs.com/victorfengming/p/11930957.html
Copyright © 2011-2022 走看看