爬虫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)
   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

#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)

猜你喜欢

转载自www.cnblogs.com/changgeyimeng/p/11115811.html
今日推荐