Day01---爬虫基础+案例

首先导入包

import time
import requests

发送请求

def get_page(url):
    response=requests.get(url)
    return response

解析数据

import re
def parse_index(html):
    # findall:匹配所有
    # re.findall('正则匹配规则','匹配文本','匹配文本')
    # 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]

保存数据

import uuid
# uuid.uuid4():根据时间戳生成世界上唯一的字符串
def save_video(content):
    with open(f'{uuid.uuid4()}.mp4','wb')as f:
        f.write(content)

测试案例:

if __name__ == '__main__':
    for line in range(6):
        url=f'http://www.xiaohuar.com/list-3-{line}.html'
        # 发送请求
        response=get_page(url)
        # 解析主页页面
        detail_urls=parse_index(response.text)

        # 循环遍历详情页url
        for detail_url in detail_urls:
            # 往每一个详情页发送请求
            detail_res=get_page(detail_url)
            # 解析详情页获取视频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)

 

转载于:https://www.cnblogs.com/gumball/p/11113984.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值