Python爬虫练习:爬取全民小视频(附代码,过程)

Python爬虫练习:爬取全民小视频(附代码,过程)[Python常见问题]

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

本次目标

爬取全民小视频

https://quanmin.baidu.com/

确定目标网页

 

选择影视类目

 

右键选择检查,开发开发者工具

 

选择 Network,网页往下滑,可以看到数据加载

  • 视频地址
  • 视频名字
  • 视频ID

 

 


接口数据链接是通过pn的变化,实现翻页效果

如果想要爬取其他分类视频,把参数中tab_name 更改即可

环境

  • Python3.6
  • pycharm

 

开始代码

导入工具

import pprint
import requests

 

相关库可以用 pip install 安装

请求、解析、爬取网页数据,并保存

url = "https://quanmin.baidu.com/wise/growth/api/home/tabmorelist"
for page in range(1, 100):
    params = {
        "rn": "12",
        "pn": "{}".format(page),
        "timestamp": "1603442730716",
        "session_id": "1603442719704",
        "tab_name": "movie",
        "_format": "json",
    }
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
    }
    response = requests.get(url=url, params=params, headers=headers)
    html_data = response.json()
    lis = html_data["data"]["list"]["video_list"]
    for li in lis:
        play_url = li["play_url"]
        title = li["title"]
        filename = "C:UsersAdministratorDesktop新建文件夹" + title + ".mp4"
        response_2 = requests.get(url=play_url, headers=headers)
        with open(filename, mode="wb") as f:
            f.write(response_2.content)
            print(title, play_url)

 

运行代码,效果如下