欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

requests爬取梨视频并保存到本地最简单的方法

程序员文章站 2022-05-30 16:29:03
...
import requests
from lxml import etree
import re
import os
from urllib.request import urlretrieve

url='https://www.pearvideo.com/category_9'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}

res = requests.get(url,headers=headers)
html_doc = res.content.decode('utf-8')

tree = etree.HTML(html_doc)


movie = tree.xpath('//*[@id="categoryList"]/li/div/a/@href')
movie_1 = tree.xpath('//*[@id="categoryList"]/li/div/a/div[2]/text()')

for movie_url,movie_text in zip(movie,movie_1):
    #拼接url
    movie_url = 'https://www.pearvideo.com/'+movie_url
    #获取每个url的网页text
    movie_id_string = requests.get(movie_url,headers=headers).text

    #获取视频里层播放mp4的url地址 []
    movie_mp4_url = re.findall('sdflvUrl="",hdUrl="",sdUrl="",ldUrl="",srcUrl="(.*?)",vdoUrl=srcUrl',movie_id_string)

    #url在[]列表里 没有遍历出来 所以用索引下标[0]

    #第一种保存方法
    mp4 = requests.get(movie_mp4_url[0]).content

    with open('./movie/%s.mp4'%movie_text,'wb') as f:
        f.write(mp4)
        print("正在下载视频:%s"%movie_text)


    # #第二种保存方法
    # path='movie'
    # #判断有没有这个路径,没有则创建
    # if path not in os.listdir():
    #     os.mkdir(path)
    # #路径+文件格式+文件名字
    # filepath = path + '/%s.mp4'%movie_text[0]
    # #下载:url地址,文件路径。
    # urlretrieve(movie_mp4_url[0],filepath)