首先导入包
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)