爬取糗事小百科上的视频

简单的一下:只爬取一个页面上的(可以爬取多个页面)用到了拼接format以及list的遍历的等等小的知识点

import requests
import re
#下面这个就是伪装成浏览器正常访问浏览器
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}#创建头部信息
# url = 'https://www.qiushibaike.com/video/page/{}'这三个用于分页情况下多网页进行操作。不用的话就只爬取一个页面的的。
# for i in range(1,4):
#     print(url.format(i))
url = 'https://www.qiushibaike.com/video'
resp = requests.get(url,headers=headers)
#print( resp )得到一个响应状态吗。200表示成功然后418表示反爬
#print( resp.request.headers )这里就是为神魔需要伪装成浏览器
#print(resp.text)可以看成返回全部的内容
#下面的第一个参数是查找的规则,第二个参数是数据
# r表示原始字符()表示只要()里面的东西。.表示任意字符*表示任意个数
info = re.findall(r'<source src="(.*)" type=\'video/mp4\' />',resp.text)
#print(type(info))可以查看他的数据类型经过测试说明提取出来的数据是一个列表
lst=[]  #用于存储拼接后的url
for item in info:
    lst.append('https:'+item) #这样哪些连接的颜色就变了
#print(lst)进行输出查看
#-------剩下的工作就是下载。以上已经获取到了所有的连接。
'''接下来一个一个发请求'''
count=0
for item in lst:
    #发送请求
    resp=requests.get(item,headers=headers)
    count+=1
    #上下文管理(视频保存到哪里)第一个参数为位置第二个参数为打开方式,str的作用是类型转换
    with open('video/'+str(count)+',mp4','wb') as file:
        #写入到本地磁盘
        file.write(resp.content) #content说明的是二进制的而text是文本
print("视频下载完毕")

 

posted @ 2020-07-29 19:03  喜欢爬的孩子  阅读(119)  评论(0编辑  收藏  举报