1. currentlocation,windows10系统卸载的软件怎么恢复?
解决方法如下:
1、若是不小心卸载掉的是系统自带软件,则鼠标右键单击桌面左下角“开始”菜单,选择“Windows powershell管理员”选项打开;
2、打开后,鼠标选中下方命令:Get-AppxPackage -AllUsers| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”} 然后右键选择“复制”,并在弹出窗口“右键”单击即可粘贴,回车开始运行;
3、等待命令执行完毕即可恢复所有卸载掉的系统软件;
4、若是其他软件,则使用组合快捷键“Win+R”打开运行窗口,输入命令“regedit”回车确定大打开;
5、打开注册表后,依次找到:HKEY_LOCAL_MACHINME/Software/Microsoft/Windows/Currentversion/Explorer/Desktop/Namespace的位置;
6、左侧鼠标右键单击,选择“新建”→“项”,然后选中重命名为“645FF040- -5081- -101B- -9F08- -00AA002F954E”;
7、选中后,右侧弹出“默认”项,右键单击选择“修改”;
8、弹出窗口中修改“数值数据”为“回收站”,单击确定保存;
9、重启电脑即可找回;
以上就是win10电脑不小心卸载软件该怎么恢复的解决方法,有需要的小伙伴可以根据卸载情况选择合适的方法进行恢复,希望能够对大伙儿有所帮助。
2. theisle地图坐标怎么看?
关于这个问题,要查看The Isle游戏中的地图坐标,请按以下步骤操作:
1. 在游戏中按下“Enter”键打开聊天窗口。
2. 输入“/loc”命令,不包括引号。
3. 您将在聊天窗口中看到您当前的位置坐标。
例如,如果您看到了以下内容:
CURRENT LOCATION: X = -100.00 Y = 50.00 Z = 200.00
那么您的当前位置坐标为 (X = -100.00, Y = 50.00, Z = 200.00)。
请注意,The Isle游戏中的地图坐标以三维坐标系表示,其中X轴表示东西方向,Y轴表示南北方向,Z轴表示高度。因此,当您查看坐标时,请确保您了解游戏中的坐标系统。
3. win10怎么改变win10聚焦?
正常情况下,Windows聚焦的锁屏壁纸是能够自动更换的,如果“Windows聚焦”不更新、图片不变了,连续多天一直就是那么一张图片,那么可以试试如下解决方法:
PS: 以下解决方法从简到繁,你可依次尝试,如果“Windows聚焦”锁屏壁纸已恢复正常,那就不必再操作后面的方法。
一、使用Microsoft帐户登录系统,检查网络
首先,需要确认你使用的是Microsoft帐户登录的Win10系统,并且网络连接正常。
如果使用的是本地帐户,那么就切换为Microsoft帐户登录系统;如果网络连接显示正常,但是却无法上网,请重置Winsock目录修复网络。
需要注意的是,因为“Windows聚焦”需要连接微软服务器才能正常工作,而鉴于国内特殊的网络环境,连接微软服务器是不稳定的。所以,你不要被表面的电脑能够上网这样的假象所迷惑,试着打开几款Windows10内置的微软应用,例如“Microsoft、天气、日历、邮件”等,看看网络连接是否正常。
二、重新开启“Windows聚焦”
进入“设置 - 个性化 - 锁屏界面”,先把背景设置为“图片”或“幻灯片放映”,确定后再重新设置为“Windows聚焦”。
三、在“轻松使用”中关闭“动画、透明、背景”
进入“设置 - 轻松使用 - 显示”,把“在Windows中播放动画、显示透明度、显示桌面背景图像”三项先关掉。看“Windows聚焦”能否恢复正常,待正常后再重新开启这三项。
四、在组策略中先关闭再开启“显示锁屏”
按照《如何关闭Win10锁屏界面 https://www.windows10.pro/not-show-lock-screen/ 》一文的方法,在组策略中先把“不显示锁屏”设置为“已启用”,确定后,再修改为“未配置”,确定。
五、修复Windows系统相关组件
1.清空用户系统保护数据
Win + R 快捷键调出“运行”对话框,输入“%ProgramData%\Microsoft\Windows”,确定。然后在打开的Windows目录中获取SystemData目录的管理员权限,然后清空SystemData目录下的所有内容。
打开注册表编辑器,定位至:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SystemProtectedUserData
在右侧窗口中删除除“默认”外的所有值。
2.修复Windows系统
以管理员身份运行命令提示符,依次输入并回车运行以下命令:
Dism /Online /Cleanup-Image /ScanHealth
DISM.exe /Online /Cleanup-image /Restorehealth
sfc /scannow
六、使用Powershell命令重装“Windows聚焦”
如果确认网络连接是正常的,那么有可能是Win10系统中的“Windows聚焦”组件出问题了,我们可以按如下方法重新安装“Windows聚焦”:
右键点击Win10开始按钮,在弹出的菜单中选择“Windows Powershell(管理员)”。然后在打开的“管理员:Windows Powershell”窗口中运行以下命令:
Get-AppxPackage -AllUsers
这会列出当前系统中安装的所有应用。在其中找到Name为Microsoft.Windows.ContentDeliveryManager的项目。
PS: 你可以点击“Windows Powershell”窗口左上角的图标,在弹出的菜单中选择“编辑 - 查找”来快速找到该项目。
记下该项的InstallLocation后的路径(安装位置):
C:\Windows\SystemApps\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy
然后运行以下命令即可重装安装Microsoft.Windows.ContentDeliveryManager:
Add-AppxPackage –disabledevelopment –register"C:\Windows\SystemApps\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\Appxmanifest.xml”
也就是说,命令的形式是:
Add-AppxPackage –disabledevelopment –register"installlocation\Appxmanifest.xml”
完成后重启电脑。
4. Win10系统如何查看密钥?
要查看Windows 10系统的激活密钥,请按照以下步骤操作:
1. 点击“开始”菜单,然后选择“设置”(齿轮图标)。
2. 在“设置”窗口中,选择“更新和安全”。
3. 在左侧导航栏中,选择“激活”。
4. 在右侧窗口中,您将看到Windows 10系统的激活状态。如果系统已激活,则会显示“Windows 已激活”消息以及激活密钥。如果系统未激活,则会显示“Windows 尚未激活”消息。
另外,您还可以通过以下方法之一来查看您的Windows 10系统激活密钥:
方法一:使用命令提示符
1. 按Win+R键打开运行窗口。
2. 输入“cmd”并按Enter键打开命令提示符窗口。
3. 在命令提示符窗口中,输入“slmgr.vbs /dli”并按Enter键。系统将显示Windows 10系统的激活密钥。
方法二:使用注册表编辑器
1. 按Win+R键打开运行窗口。
2. 输入“regedit”并按Enter键打开注册表编辑器窗口。
3. 在注册表编辑器窗口中,导航到以下路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Activation\OOBE\AutoUninstallLocation。
4. 在AutoUninstallLocation文件夹中,找到名为“ProductKey”的字符串值,它包含了您的Windows 10系统的激活密钥。
5. 冰岛地理位置的英文简介?
Iceland,anislandaboutthesizeofKentucky,liesinthenorthAtlanticOceaneastofGreenlandandjusttouchestheArcticCircle.Itisoneofthemostvolcanicregionsintheworld.Morethan13%iscoveredbysnowfieldsandglaciers,andmostofthepeopleliveinthe7%oftheislandthatismadeupoffertilecoastland.TheGulfStreamkeepsIceland'sclimatemilderthanonewouldexpectfromanislandneartheArcticCircle.
Location:NorthernEurope,islandbetweentheGreenlandSeaandtheNorthAtlanticOcean,northwestoftheUK
Geographiccoordinates:6500N,1800W
Mapreferences:ArcticRegion
Area:total:103,000sqkm
water:2,750sqkm
land:100,250sqkm
Area-comparative:slightlysmallerthanKentucky
Landboundaries:0km
Coastline:4,988km
Maritimeclaims:continentalshelf:200NMortotheedgeofthecontinentalmargin
territorialsea:12NM
exclusiveeconomiczone:200NM
Climate:temperate;moderatedbyNorthAtlanticCurrent;mild,windywinters;damp,coolsummers
Terrain:mostlyplateauinterspersedwithmountainpeaks,icefields;coastdeeplyindentedbybaysandfiords
Elevationextremes:lowestpoint:AtlanticOcean0m
highestpoint:Hvannadalshnukur2,119m
Naturalresources:fish,hydropower,geothermalpower,diatomite
Landuse:arableland:0.06%
permanentcrops:0%
other:99.94%(23%permanentpastures)(1998est.)
Irrigatedland:NAsqkm
Naturalhazards:earthquakesandvolcanicactivity
Environment-currentissues:waterpollutionfromfertilizerrunoff;inadequatewastewatertreatment
Environment-internationalagreements:partyto:AirPollution,Biodiversity,ClimateChange,Desertification,EndangeredSpecies,HazardousWastes,LawoftheSea,MarineDumping,NuclearTestBan,OzoneLayerProtection,ShipPollution,Wetlands
signed,butnotratified:AirPollution-PersistentOrganicPollutants,EnvironmentalModification,MarineLifeConservation
Geography-note:strategiclocationbetweenGreenlandandEurope;westernmostEuropeancountry;Reykjavikisthenorthernmostnationalcapitalintheworld;morelandcoveredbyglaciersthaninallofcontinentalEurope
@你好歌德,一个喜欢发牢骚的90后互联网从业者
---本文来源于网络。希望能帮到您,祝您生活愉快!
6. win11显示设置卡片空白怎样解决?
一、如果您的 Windows 10 或 Windows 11 操作系统在使用过程中发现 Windows 安全中心打开空白,造成 Windows 安全中心空白问题的原因是因为某些注册表值缺失或者 Windows 服务被禁用导致。可以参考以下步骤快速解决安全中心空白问题。
1、复制以下注册表值,新建个空白文档,粘贴后保存,保存后把文本后缀 .txt 更改为 .reg 文件(变为注册表文件)。然后双击导入注册表值。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender]
"DisableAntiSpyware"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection]
"DisableBehaviorMonitoring"=dword:00000000
"DisableIOAVProtection"=dword:00000000
"DisableOnAccessProtection"=dword:00000000
"DisableRealtimeMonitoring"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecurityHealthService]
"Start"=dword:00000002
2、右击计算机图标“此电脑”,选择管理,在管理列表左侧找到服务和应用程序,打开服务选项。
3、在服务列表中找到 Windows Modules Installer,右键更改启动类型为自动,并启动该服务。

3、然后重启计算机。
Windows Defender 安全中心应该恢复正常。
二、如果修改注册表无法解决,可能还存在一种情况,安全中心app需要重置。可以执行以下步骤
1、若是有安装第三方的安全软件,建议卸载。例如电脑管家,360等
2、然后鼠标右击开始按钮,选择“Windows 终端(管理员)”依次输入以下命令:
sfc /SCANNOW
(按下Enter键)
Dism /Online /Cleanup-Image /ScanHealth
(按下Enter键)
Dism /Online /Cleanup-Image /CheckHealth
(按下Enter键)
DISM /Online /Cleanup-image /RestoreHealth
(按下Enter键)
Set-ExecutionPolicy Unrestricted
(按下Enter键)
Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}
(按下Enter键)
Get-AppxPackage Microsoft.SecHealthUI -AllUsers | Reset-AppxPackage
(按下Enter键)
重启电脑,Windows Defender 安全中心应该恢复正常。
7. 怎么批量下载抖音里某个人的全部视频?
转一下啊 大神的答案
Python爬取抖音视频
请移到Python爬取抖音视频(2)
获取用户的url
创建指定文件夹
获取用户的信息
分析url下的视频连接
下载视频
一、获取用户的url连接
看的几个博客教程写的都是手机抓包来获取接口,和用户的url地址。
分享为连接形式就可以了。 获取的短连接形式:http://v.douyin.com/J2B9Sk/ 短链接会重定向到指定连接:https://www.douyin.com/share/user/57720812347?share_type=link 需要得到跳转后的连接:
# 短链接转长地址
def get_RealAddress(self, url):
if url.find('v.douyin.com') < 0:
return url
response = requests.get(
url=url, headers=self.header, allow_redirects=False) # allow_redirects = False 不允许跳转
return response.headers['Location']
1
2
3
4
5
6
7
因为在requetst.get()请求后,返回的是302,在response的headers头中会返回Location地址,这个就是重定向跳转的地址。
二、创建用户文件夹
**self.user_id:**是长连接中的/user/后面的id
# 创建对应的文件夹
def mkdir_dir(self):
current_folder = os.getcwd()
self.target_folder = os.path.join(
current_folder, 'download/%s' % self.user_id)
if not os.path.isdir(self.target_folder):
os.mkdir(self.target_folder)
1
2
3
4
5
6
7
8
三、获取用户信息
class DouYin:
header = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'max-age=0',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
}
def __init__(self, url=None):
self.url = self.get_RealAddress(url)
# 获取用户视频的url
self.user_video_url = 'https://www.douyin.com/aweme/v1/aweme/post/?{0}'
self.user_id = re.search(r'user/(.*)\?', self.url).group(1) # 用户id
requests.packages.urllib3.disable_warnings() # 忽略SSL
self.session = requests.Session()
self.target_folder = '' # 创建文件的路径
self.queue = queue.Queue() # 生成一个队列对象
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
打开转换后的连接,打开Chrome的调试工具,切换到NetWork里,因为里面的内容是动态加载的Ajax,所以选择XHR,分析第一个链接的参数。
有五个参数:user_id, count, max_cursor, aid, _signature。
其中user_id,count,aid是不变的,_signature是加密的,max_cursor是response返回的json参数里面的。
所以困难是如何获取加密参数_signature。
解密js文件在后面传上去,首先安装上node.js
def user_info(self):
self.mkdir_dir()
p = os.popen('node signature.js %s' % self.user_id) # 获取加密的signature
signature = p.readlines()[0]
user_video_params = {
'user_id': str(self.user_id),
'count': '21',
'max_cursor': '0',
'aid': '1128',
'_signature': signature
}
1
2
3
4
5
6
7
8
9
10
11
12
四、分析url下的视频连接
# 获取下载视频的列表
def get_aweme_list(max_cursor=None):
if max_cursor:
user_video_params['max_cursor'] = str(max_cursor)
user_video_url = self.user_video_url.format(
'&'.join([key + '=' + user_video_params[key] for key in user_video_params])) # 拼接参数
response = requests.get(
url=user_video_url, headers=self.header, verify=False)
contentJson = json.loads(response.content.decode('utf-8')) # 将返回的进行utf8编码
aweme_list = contentJson.get('aweme_list', [])
for aweme in aweme_list:
video_name = aweme.get(
'share_info', None).get('share_desc', None) # 视频的名字
video_url = aweme.get('video', None).get('play_addr', None).get(
'url_list', None)[0].replace('playwm', 'play') # 视频链接
self.queue.put((video_name, video_url)) # 将数据进队列
if contentJson.get('has_more') == 1: # 判断后面是不是还有是1就是还有
return get_aweme_list(contentJson.get('max_cursor')) # 有的话获取参数max_cursor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
五、下载视频
# 下载视频
def get_download(self):
while True:
video_name, video_url = self.queue.get()
file_name = video_name + '.mp4'
file_path = os.path.join(self.target_folder, file_name)
if not os.path.isfile(file_path):
print('download %s form %s.\n' % (file_name, video_url))
times = 0
while times < 10:
try:
response = requests.get(
url=video_url, stream=True, timeout=10, verify=False) # 开启流下载
with open(file_path, 'wb') as f:
for chunk in response.iter_content(1024): # 返回迭代对象
f.write(chunk)
print('下载成功')
break
except:
print('下载失败')
times += 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
问题:
遇到了爬取https网站报错
获取加密参数signature
以及去视频的水印将视频链接里的playwm参数替换为play就可以了
可以用多线程下载更快,因为关于I/O存取还是可以用多线程操作的。
解密的js文件:下载
代码:
import requests
import json
import re
import os
from pprint import pprint as pp
import queue
class DouYin:
header = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'max-age=0',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
}
def __init__(self, url=None):
self.url = self.get_RealAddress(url)
# 获取用户视频的url
self.user_video_url = 'https://www.douyin.com/aweme/v1/aweme/post/?{0}'
self.user_id = re.search(r'user/(.*)\?', self.url).group(1) # 用户id
requests.packages.urllib3.disable_warnings()
self.session = requests.Session()
self.target_folder = '' # 创建文件的路径
self.queue = queue.Queue() # 生成一个队列对象
def user_info(self):
self.mkdir_dir()
p = os.popen('node fuck.js %s' % self.user_id) # 获取加密的signature
signature = p.readlines()[0]
user_video_params = {
'user_id': str(self.user_id),
'count': '21',
'max_cursor': '0',
'aid': '1128',
'_signature': signature
}
# 获取下载视频的列表
def get_aweme_list(max_cursor=None):
if max_cursor:
user_video_params['max_cursor'] = str(max_cursor)
user_video_url = self.user_video_url.format(
'&'.join([key + '=' + user_video_params[key] for key in user_video_params])) # 拼接参数
response = requests.get(
url=user_video_url, headers=self.header, verify=False)
contentJson = json.loads(response.content.decode('utf-8')) # 将返回的进行utf8编码
aweme_list = contentJson.get('aweme_list', [])
for aweme in aweme_list:
video_name = aweme.get(
'share_info', None).get('share_desc', None) # 视频的名字
video_url = aweme.get('video', None).get('play_addr', None).get(
'url_list', None)[0].replace('playwm', 'play') # 视频链接
self.queue.put((video_name, video_url)) # 将数据进队列
if contentJson.get('has_more') == 1: # 判断后面是不是还有是1就是还有
return get_aweme_list(contentJson.get('max_cursor')) # 有的话获取参数max_cursor
get_aweme_list()
# 下载视频
def get_download(self):
while True:
video_name, video_url = self.queue.get()
file_name = video_name + '.mp4'
file_path = os.path.join(self.target_folder, file_name)
if not os.path.isfile(file_path):
print('download %s form %s.\n' % (file_name, video_url))
times = 0
while times < 10:
try:
response = requests.get(
url=video_url, stream=True, timeout=10, verify=False) # 开启流下载
with open(file_path, 'wb') as f:
for chunk in response.iter_content(1024): # 返回迭代对象
f.write(chunk)
print('下载成功')
break
except:
print('下载失败')
times += 1
# 创建对应的文件夹
def mkdir_dir(self):
current_folder = os.getcwd()
self.target_folder = os.path.join(
current_folder, 'download/%s' % self.user_id)
if not os.path.isdir(self.target_folder):
os.mkdir(self.target_folder)
# 短链接转长地址
def get_RealAddress(self, url):
if url.find('v.douyin.com') < 0:
return url
response = requests.get(
url=url, headers=self.header, allow_redirects=False) # allow_redirects 允许跳转
return response.headers['Location']
if __name__ == '__main__':
douyin = DouYin(url='http://v.douyin.com/J2B9Sk/')
douyin.user_info()
douyin.get_download()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
---------------------
作者:胡文博
来源:CSDN
原文:https://blog.csdn.net/qq_1290259791/article/details/80903220
版权声明:本文为博主原创文章,转载请附上博文链接!
Python爬取抖音视频(2)
最近看到之前写的抖音爬虫失效了,其实方法还能用,只是多了一个参数而已,直接从页面获取就可以了。
之前看到一个获取视频列表不用加密参数_signature,的链接。
下载的视频还是去水印版本的。
不用_signature参数来获取视频列表。
增加了dytk参数。
主要使用协程来加速下载
协程的教程:链接
获取用户的url链接
模拟请求,直接获取dytk参数、id参数
构建获取视频url地址参数,https://www.amemv.com这个域名下的请求不需要_signature
然后就是下载视频了。
# -*- coding: utf-8 -*-
# File : douyin.py
# Author: HuWenBo
# Date : 2018/10/26
# 使用协程爬取抖音个人下的所有视频
import os
import requests
import re
import sys
import asyncio
import aiohttp
headers = {
'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) '
'Version/11.0 Mobile/15A372 Safari/604.1'
}
VIDEO_URLS, PAGE = [], 1
def get_info(url):
"""
:param url: 用户的链接
:return:返回name,dytk,user_id 参数
"""
name = None
dytk = None
user_id = None
try:
response = requests.get(url, headers=headers)
user_id = response.url.split('/')[5].split('?')[0]
name = re.search(r'class="nickname">(.*?)<', response.text)[1]
dytk = re.search(r"dytk: '(.*?)'", response.text)[1]
except (TypeError, IndexError):
sys.stdout.write('Waring:输入的链接错误')
except requests.exceptions:
sys.stdout.write('Waring:链接错误')
finally:
return name, user_id, dytk
def make_dir(name):
"""
建立文件夹
:param name: 用户名称
:return:
"""
if not os.path.isdir(name):
os.mkdir(name)
else:
pass
def get_all_video(user_id, max_cursor, dytk):
"""
获取视频的地址
:param user_id:
:param max_cursor:
:param dytk:
:return:
"""
url = "https://www.amemv.com/aweme/v1/aweme/post/?"
params = {'user_id': user_id,
'count': 21,
'max_cursor': max_cursor,
'dytk': dytk}
try:
response = requests.get(url=url, params=params, headers=headers)
if response.status_code == 200:
datas = response.json()
for data in datas['aweme_list']:
name = data.get('share_info').get('share_desc')
url = data.get('video').get('play_addr').get('url_list')[0].replace('playwm', 'play')
VIDEO_URLS.append([name, url])
if datas['has_more'] == 1 and datas.get('max_cursor') != 0:
global PAGE
print(f'收集第{PAGE}页视频')
PAGE += 1
return get_all_video(user_id, datas.get('max_cursor'), dytk)
else:
print('收集完成')
return VIDEO_URLS
else:
print('状态码:', response.status_code)
return None
except Exception as e:
print('Waring:', e)
return
async def download_video(index, name, video_name, url):
"""
下载视频
:param index: 视频id
:param name: 用户名称
:param video_name: 视频名称
:param url: 下载url
:return:
"""
print(f'正在下载第{index}个视频:{video_name}')
video_path = '{}/{}.mp4'.format(name, video_name)
if not os.path.isfile(video_path):
try:
async with aiohttp.ClientSession() as session:
async with session.get(url=url, headers=headers, ssl=False) as response:
with open(video_path, 'wb') as f:
while True:
chunk = await response.content.read(1024)
f.write(chunk)
if not chunk:
break
print(f'下载完成第{index}个视频:{video_name}')
except Exception as e:
print('waring:download faild', video_name, e)
return
else:
print('文件已存在')
def main():
url = 'http://v.douyin.com/dEorkn/'
name, user_id, dytk = get_info(url)
if not (name, user_id, dytk):
return
make_dir(name)
get_all_video(user_id, 0, dytk)
print(f'{name}:总共有{len(VIDEO_URLS)}个视频')
tasks = []
for index, item in enumerate(VIDEO_URLS, 1):
video_name = item[0]
url = item[1]
tasks.append(asyncio.ensure_future(download_video(index, name, video_name, url)))
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))
loop.run_until_complete(asyncio.sleep(0))
loop.close()
print(f'{name}视频下载完成!')
if __name__ == '__main__':
main()
---------------------
作者:胡文博
来源:CSDN
原文:https://blog.csdn.net/qq_1290259791/article/details/83423001
版权声明:本文为博主原创文章,转载请附上博文链接!