码迷,mamicode.com
首页 > 其他好文 > 详细

挑战每分钟爬取100个视频,只要网速够快,反爬就追不到我

时间:2020-05-13 21:54:02      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:浏览器   cap   响应   sts   mon   模拟浏览器   bdr   hao123   毫秒级   

前言

好看视频大部分是精品短视频!相同的接口返回不同的视频给用户

今天就带大家把系统推荐的视频给爬取下来!

知识点

1、动态数据抓包演示

2、json数据解析方法

3、视频数据保存

环境介绍

python 3.6

pycharm

requests

json

爬虫的一般思路

1、分析目标网页,确定爬取的url路径,headers参数

2、发送请求 -- requests 模拟浏览器发送请求,获取响应数据

3、解析数据

4、保存数据 -- 保存在目标文件夹中

步骤

1、导入工具

import requests
import time
import pprint

 

2、确定爬取的url路径,headers参数

 

技术图片

 

 

技术图片

 

# 获取时间戳
"""
    时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。
    秒级时间戳,10位
    毫秒级时间戳,13位
    微秒级时间戳,16位
"""

time_one = str(int(time.time() * 1000))
# print(time_one)
base_url = https://haokan.baidu.com/videoui/api/videorec?tab=gaoxiao&act=pcFeed&pd=pc&num=20&shuaxin_id= + time_one
headers = {
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36,
    cookie: BIDUPSID=ABD6DB65092EB1ECFA3DB139E3DCDE8D; PSTM=1575868363; BAIDUID=ABD6DB65092EB1ECE63825000D8C97DB:FG=1; BDUSS=U1c0hpalFvb2ZLclIwY0tHSnA2T0ZLbjV3NDcyQmhkQ2FsV2VPbmptS1U1QzllRVFBQUFBJCQAAAAAAAAAAAEAAAD9hL2nuti-~M~oMzEzNjQxOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJRXCF6UVwheZn; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; PC_TAB_LOG=haokan_website_page; Hm_lvt_4aadd610dfd2f5972f1efee2653a2bc5=1578978739,1578979115; BAIDU_SSP_lcr=https://www.hao123.com/link/https/?key=http%3A%2F%2Fv.baidu.com%2F&&monkey=m-coolsites-row0&c=B22D86A598C084B684993C4C1472E65C; BDRCVFR[PaHiFN6tims]=9xWipS8B-FspA7EnHc1QhPEUf; delPer=0; PSINO=6; H_PS_PSSID=; Hm_lpvt_4aadd610dfd2f5972f1efee2653a2bc5=1578982791; reptileData=%7B%22data%22%3A%22ff38fdbd98456480e9c9c7834cbfeaa39236e14520ac985b719893846080819083f656303845fdcba03de7a67af409104bd1b7bccbc028b467f251922334608c1b34b919ef391c146a5ad41b8099df302ec0d32f3a55b4271300112ff8e8f12a1cde132ecaf78f8df8d9c97ddd9abefa4d7a4d8bdd641c156c016dba346150a8%22%2C%22key_id%22%3A%2230%22%2C%22sign%22%3A%226430f36d%22%7D
    }

 

3、发送请求 -- requests 模拟浏览器发送请求,获取响应数据

技术图片
response = requests.get(base_url, headers=headers)
data = response.json()
# pprint.pprint(data)

4、解析数据

技术图片
data_list = data[data][response][videos]  # --列表
# print(data_list)

# 遍历列表
for data in data_list:
    video_name = data[title] + .rmvb  # 视频文件名
    video_url = data[play_url]  # 视频的url地址
    # print(video_name, video_url)
    # print(type(video_name))

    # 再次发送请求
    print(正在下载:, video_name)
    video_data = requests.get(video_url, headers=headers).content

5、保存数据 -- 保存在目标文件夹中

 with open(video\\ + video_name, wb) as f:
        f.write(video_data)
        print(下载完成。。。\n)

运行代码,效果如下图

技术图片

好了,这样视频就可以慢慢的下载了

欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。

不管你是零基础还是有基础都可以获取到自己相对应的学习礼包!包括Python软件工具和2020最新入门到实战教程。加群695185429即可免费获取。

挑战每分钟爬取100个视频,只要网速够快,反爬就追不到我

标签:浏览器   cap   响应   sts   mon   模拟浏览器   bdr   hao123   毫秒级   

原文地址:https://www.cnblogs.com/python0921/p/12885071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!