python爬虫 爬取视频 练习

一直都想爬个视频玩玩于是…
分析网站
检查网页源码发现并没有视频信息 于是按F12 进入network中刷新页面发现 如下
在这里插入图片描述
在这里插入图片描述
request中的url地址才是真正的我们想要的地址,访问之后服务器返回明文json数据 于是豁然开朗
接下来我们点击 加载更多 去寻找是怎么翻页的 发现:
在这里插入图片描述
在这里插入图片描述
现在已经获取到所有必要的信息了 开始写程序:



import json
import requests

def get_url(url, hander):
    try:
        r = requests.get(url, headers=hander, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except requests.exceptions.ConnectTimeout:
        print("(1)连接超时")
        return ""
    except requests.exceptions.HTTPError as e:
        print(e)
        return ""
def prasing_page(html, hander,s):
    s = s+1   #页数+1
    json_data = json.loads(html)  #将json数据转换为python数据
    py_data = json_data['data']   #获取data的值
    for i in range(len(py_data)):
        try:
            print("\r当前进度第{}页>>>>>>>>>>>>>>{:.0f}%".format(s, i * 100 / len(py_data)), end="") #在一行显示进度
            with open('O:/ku6_viedo/'+py_data[i]['title']+'.mp4', 'wb') as f:
                r = requests.get(py_data[i]['playUrl'], headers=hander, timeout=30)
                f.write(r.content)
                f.close()
        except requests.exceptions.ConnectTimeout:
            print("(2)下载超时")
            continue  #如果下载超时则进行下一个视频下载
def main():
    hander = {"User-Agent": "Mozilla/5.0"}
    deep = 20      #定义总共爬取多少页
    s = 0         #定义一个变量 表示页数
    for i in range(deep): #循环爬取页面
        url = "https://********/video/feed?pageNo="+str(i)+"&pageSize=40&subjectId=76"
        html = get_url(url, hander)
        prasing_page(html, hander, s)


main()

在这里插入图片描述
在这里插入图片描述
运行成功!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值