day01

# requests请求库
# 1.安装与使用
#   pip3 install requests
# 2.模拟浏览器
#     General:
#             Request URL:请求URL
#             Requst Method:请求方式
#             Status Code:响应状态码
#     Response Headers:提交到服务器的数据头
#                       Cookie:用户信息
#                       User-Agent

'''
一.请求URL
   http://www.xiaohuar.com/v/
二.请求方式
   GET
三.请求头信息
   User-Agent :用户代理
'''
import time
import requests
# 爬虫三部曲
# 1.发送请求
def get_page(url):
   respone=requests.get(url)
   return respone
# 2.解析数据
import re
def parse_index(html):
   # findall匹配所有
   #re.findall('匹配所有’,html,re.S)
   #re.S(对全部文本进行匹配)
   detail_urls=re.findall('<div class="items"><a class="imglink" href="(.*?)"',html,re.S)
   #for detail_url in detail_urls:
   #print(detail_url)
   return detail_urls
#解析详情页
def parse_detail(html):
  movie_url=re.findall('<source src="(.*?)">',html,re.S)
  #print(movie_url)
  if movie_url:
    return movie_url[0]
# 3.保存数据
import uuid
#uuid.uuid4()根据时间戳生成一段世界上唯一的字符串
def save_video(content):
  with open(f'{uuid.uuid4()}.mp4','wb')as f:
   f.write(content)
   print('视频下载完毕...')
# main+回车键
# 测试用例:
if_name_='_main_'
for line in range(5):
 url=f'http://www.xiaohuar.com/list-3-{line}.html'
#发送请求
response=get_page(url)
#print(response)
##返回响应状态码
#print(respone.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
      move_url=parse_detail(detail_res.text)
      #判断视频url存在则打印
      if move_url:
          print(move_url)

          #往视频url发送请求获取视频二进制流
          move_res=get_page(move_url)
          #把视频的二进制流传给save_video函数去保存到本地
          save_video(move_res.content)

 

posted @ 2019-07-01 16:53  阿泽zzz  阅读(257)  评论(0编辑  收藏  举报