如何使用python爬虫获取某音的无水印图片/视频?
在网安的学习路上挺无聊的,今天写了个python爬虫脚本,爬取某音的无水印视频和图片,在开始爬虫之前,要养成一个好的习惯,那就是使用代理!增加爬虫访问匿名性,那么开始获取代理吧。
正在爬取中,耐心等待
判断ip是否可用,并将其写入到一个txt文件中
写完了,那么开始写脚本吧,添加所需要的模块
import random
import requests
import fake_useragent
import json
import datetime
编写主函数
def main():
content = "" # 你的分享某音链接
data = {
'pageUrl': content
}
url = ''# 自行获取,回复【爬虫】
header = {
'User-Agent': fake_useragent.UserAgent().random,
}
ips=open('可用ip.txt',mode='r',encoding='utf-8')
ips=ips.read().split('\n')
proxy = {
"http": f'{random.choice(ips)}',
}
res = requests.post(url, headers=header, data=data, proxies=proxy)
json_str = json.loads(res.text)
result = json_str['Data']
print(result)
if not result['VideoUrls']:
for i in range(0,len(result['Pics'])):
write_file(result['Pics'][i],header,proxy,type='pic')
print('第',i,'个张图片下载完成')
write_file(result['VideoUrls'],header,proxy,type='video')
print('视频下载完成')
return
编写写入文件内容
def write_file(url, header, proxy,type):
'''
创建指定图片文件,并删除它
:param file_name:
:return:
'''
filename = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
file_res = requests.get(url, headers=header, proxies=proxy)
if type=='video':
with open(f'mp4s/{str(filename)}.mp4', 'wb') as f:
f.write(file_res.content)
return None
with open(f'pics/img{str(filename)}.png', 'wb') as f:
f.write(file_res.content)
return None
运行
if __name__ == '__main__':
main()
打开文件即可,没有log*
下载无log*图片
下载成功,over!
就想着,如果我把这个工具做成Web应用程序呢?我又想起了python的django,经过我的一顿猛如虎的操作后我执行了如下代码
python manage.py runserver
进入了如下页面
输入朋友分享给你的链接,点击提交,成功解析
这个页面太难看啦?我可是一名年纪轻轻21岁的全栈开发工程师,熟悉C#,.net core前后端分离,Vue3响应式,element-Plus,待我一段时间,给宝子们整一个,出来
注:代码严禁用于非法用途,在使用爬虫脚本时,必须遵守相关法律法规。