【Python爬虫】睡不着?来一段AMSR,睡前耳部按摩,帮助睡眠。
本帖最后由 小涩席 于 2020-3-19 13:13 编辑百科:ASMR(英语:Autonomous sensory meridian response,缩写ASMR),即自发性知觉经络反应,意思是指人体通过视、听、触、嗅等感知上的刺激,在颅内、头皮、背部或身体其他部位产生的令人愉悦的独特刺激感,又名耳音、颅内高潮等。
因为昨晚上听DJ太嗨了,导致睡不着觉,都现在了,只能坚持着写了一段爬取耳音网的爬虫代码。
把小姐姐的声音保存下来,慢慢听着睡觉。感觉非常棒,睡了两个小时,起来继续给坛友分享代码。
相信用过的人都说好!(手动滑稽表情)
本段代码涉及到的知识点如下:
1.请求库 requests
2.Python正则匹配库 re
3.Json解析库 json
4.文件操作库 os
5.时间控制库 time
6.自己写的随机请求头库 from GetRandomheader import Randomheader
多的不说,老规矩,代码如下:
```
# -*- coding : 'UTF-8' -*-
# 'https://www.asmrin.com/1890.html'
# Author : XSX
# Python3.8 PyCharm Community Edition 2019.3.3
# 导入运行库
import requests
import re
import json
import os
import time
from GetRandomheader import Randomheader
# 获得到后边Json数据所需要的ID值
def GetID(url, headers):
r = requests.get(url, headers=headers)
r.encoding = r.apparent_encoding
ID = re.findall(r'.*' + '#:' + '(.*)' + '"><div class="hermit-box hermit-clear">', r.text)
Title = re.findall(r'.*title" content="(.*)"/>.*', r.text)
id = str(ID)
title = str(Title)
print('正在解析资源----' + title)
print(title + '----ID值为:' + id)
return id, title
# 组合出Json链接,解析Json代码,提取想要的数据保存成字典和列表。
def GetJson(id, headers):
SongsInfoLists = []
Jsonurl = 'https://www.asmrin.com/wp-admin/admin-ajax.php?action=hermit&scope=remote&id={}'.format(id)
rsp = requests.get(Jsonurl, headers=headers)
rsp.encoding = rsp.apparent_encoding
results = json.loads(rsp.text)
for i in results["msg"]["songs"]:
contents = {}
contents['id'] = i['song_id']
contents['title'] = i['song_title']
contents['author'] = i['song_author']
contents['src'] = i['song_src']
contents['cover'] = i['song_cover']
SongsInfoLists.append(contents)
return SongsInfoLists
# 遍历列表和字典,逐步下载保存到本地。
def Download(SongsInfoLists, filename, headers):
Filename = str(filename).replace(' ', '').replace('/', '')
if not os.path.exists('./ASMRSongs/' + Filename):
os.makedirs('./ASMRSongs/' + Filename)
for SongsInfoList in SongsInfoLists:
time.sleep(3)
r1 = requests.get(SongsInfoList['src'], headers=headers)
with open('./ASMRSongs/' + Filename + '/' + SongsInfoList['title'] + '.mp3', 'wb')as f:
f.write(r1.content)
print('保存' + SongsInfoList['title'] + '完毕!')
print('----->>>>' + Filename + '系列全部下载完毕!')
# 创建main主函数,并运行代码。
if __name__ == '__main__':
head = Randomheader()
url = 'https://www.asmrin.com/1869.html'
Args = GetID(url, head)
Download(GetJson(Args, head), Args, head)
``` ttyp 发表于 2020-3-19 11:33
GetRandomheader库都没有,我把头全删除来,能运行,就是很多目录有空格报错
这个是我自己写的库,我前面好几个帖子回复里面都有,麻烦你自己找一下了。
你说的这个问题我注意,我优化一下,先处理一下字符串的空格问题。谢谢反馈。 一念一 发表于 2021-3-22 15:40
请问只更改代码中的网址的话,是否可以爬取其它网站的音频呢?
不行的,需要对应的xpath规则,当然你可以把网址告诉我,顺手帮你写一个也可以的。 牛逼,楼主真给力 诱情可以的很催眠 滑稽 有没有成品{:301_997:} 我觉得这些虚拟的东西已经满足不了我了。不过话是谢谢楼主 GetRandomheader库都没有,我把头全删除来,能运行,就是很多目录有空格报错 越听越睡不着 大佬厉害啊,自己写了一个库可还行 给力啊耳朵也需要好好休息
页:
[1]
2