• day01.1 爬某网小视频


    首先介绍什么是爬虫

    一、爬虫的基本原理
    1.什么是爬虫?
    爬虫就是爬取数据。
    2.什么是互联网?
    由一堆网络设备,把一台台的
    计算机互联到一起称之为互联网。

    3.互联网建立的目的
    数据的传递与数据的共享。

    4.什么是数据?
    例如:
    电商平台的商品信息
    股票证券投资信息
    12306,票务信息(抢票)
    5.什么是上网?
    普通用户:
    打开浏览器
    ------》输入网址
    ------》往目标主机发送网址
    ------》返回响应数据
    ------》把数据渲染到浏览器中

    爬虫程序:
    模拟浏览器
    -----》往目标主机发送请求
    -----》返回响应数据
    -----》解析并提取有价值的数据
    -----》保存数据(文件写入本地、持久化到数据库)

    6.爬虫的全过程
    1.发送请求(请求库:request/selenium)
    2.获取响应数据
    3.解析数据(解析库:BeautifulSoup4)
    4.保存数据(存储库:文件保存MonGoDB)

    总结:假如互联网中数据比喻成宝藏,爬虫就是在挖取宝藏。
    接下来是爬校花网小视频
    import time
    import requests
    
    # 爬虫三部曲
    # 1.发送请求
    def get_page(url):
        response= requests.get(url)
        return response
    # 2.解析数据
    import re
    def parse_index(html):
        #findall匹配所有
        # re.finadall("正则匹配规则","匹配文本","匹配模式")
        # re.S 对全部文本进行搜索匹配
        detail_urls=re.findall(
            '<div class="items"><a class="imglink" href="(.*?)"',html, re.S)
        return detail_urls
    
    #解析详情页
    def parse_detail(html):
        movie_url=re.findall('<source src="(.*?)">',html,re.S)
        if movie_url:
            return movie_url[0]
    # 3.保存数据
    import uuid
    def save_video(content):
        #uuid.uuid4()根据时间戳生成一段世界上唯一的字符串
        with open(f'{uuid.uuid4()}.mp4','wb')as f:
            f.write(content)
            print('视频下载完毕,请看')
    # main +回车键
    #测试 用例:
    if __name__ == '__main__':
        for line in range(6):
            url=f'http://www.xiaohuar.com/list-3-{line}.html'
            #发送请求
            response = get_page(url)
            # print(response)
            ##返回响应状态码
            #print(response.status_code)
            #返回响应文本
            #print(response.text)
            #解析主页页面
            detail_urls=parse_index(response.text)
            #循环遍历详情页url
            for detail_url in  detail_urls:
                # print(detail_url)
                #往每一个详情页发送请求
                detail_res = get_page(detail_url)
                # print(response.text)
    
                #解析详情页获取视频url
                movie_url= parse_detail(detail_res.text)
    
                #判断视频url存在则打印
                if movie_url:
                    print(movie_url)
                    #往视频url发送请求获取视频二进制流
                    movie_res=get_page(movie_url)
                    #吧视频的二进制流传给save_video函数去保存到本地
                    save_video(movie_res.content)
    
    
    
     
  • 相关阅读:
    EBS 获取用户密码
    Using Create directory & UTL_FILE in Oracle
    Loops with PL/SQL
    Create trigger
    Oracle DB解锁和 rerun FA depreciation
    oracle中数组的运用
    FNDLOAD使用大全
    不安装Oracle客户端,透过PL/SQL Developer连接Server DB
    R12组织屏蔽
    Oracle DB Link创建
  • 原文地址:https://www.cnblogs.com/jiangbaoyabo/p/11113995.html
Copyright © 2020-2023  润新知