如何使用Python Selenium下载reddit视频

如何使用Python Selenium下载reddit视频,python,python-3.x,selenium,selenium-webdriver,Python,Python 3.x,Selenium,Selenium Webdriver,我可以通过“开发者工具”中的“网络面板”下载视频。但是如何使用python+selenium做到这一点呢?您需要获取文件托管位置的url,并使用请求下载并写入文件。像这样的 import requests ... <selnium code to parse web page> def save_vid(name=None, url=None): if not name: name = 'video.mp4' user_agent = 'Mozi

我可以通过“开发者工具”中的“网络面板”下载视频。但是如何使用python+selenium做到这一点呢?

您需要获取文件托管位置的url,并使用
请求
下载并写入文件。像这样的

import requests

... <selnium code to parse web page>

def save_vid(name=None, url=None):
    if not name:
        name = 'video.mp4'

    user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'
    response  = requests.get(url, headers={'User-Agent': user_agent})

    with open(name, 'wb') as f:
        print ("Donloading chunck")
        for chunk in response.iter_content(chunk_size=255): 
            if chunk:
                f.write(chunk)
    print("Done")
导入请求
... 
def save_vid(名称=无,url=无):
如果不是姓名:
name='video.mp4'
user_agent='Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/70.0.3538.77 Safari/537.36'
response=requests.get(url,headers={'User-Agent':User\u-Agent})
以open(名称“wb”)作为f:
打印(“唐克”)
对于响应中的块。iter\u内容(块大小=255):
如果区块:
f、 写入(块)
打印(“完成”)
更新:

特别是reddit,获得了视频的来源

<video poster="https://external-preview.redd.it/lrJKPYDzKs2SYt2rc0ig4hipMuD4JNPn24fjrV3NMLQ.png?width=960&amp;crop=smart&amp;format=pjpg&amp;auto=webp&amp;s=44e72857f61ea62d7a447a9246961aeb3ae0322d" muted="" preload="auto" class="HTML5StreamPlayer__video__regular" src="blob:https://www.reddit.com/dbfa2e9f-07da-4bc3-b258-d12ba9c4ca67">
 --> <source src="https://v.redd.it/l67upl0tug921/HLSPlaylist.m3u8" type="application/vnd.apple.mpegURL">
</video>

--> 
获取视频ID

src=”https://v.redd.it/l67upl0tug921/HLSPlaylist.m3u8
, ID=
l67upl0tug921

托管视频
https://v.redd.it/l67upl0tug921/DASH_4_8_M

使用上面的功能下载

注意:确保在机器人程序的请求+1秒延迟中使用用户代理(根据reddit)


它使用blob文件并通过ajax请求获取视频文件。获取绝对url并不容易。如果您在网站上添加更多信息。可能是url或屏幕截图或其他信息,我可以提供更多帮助。您可能仍然能够获取完整的url