小涩席 发表于 2020-3-19 11:00

【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)
```

小涩席 发表于 2020-3-19 12:01

ttyp 发表于 2020-3-19 11:33
GetRandomheader库都没有,我把头全删除来,能运行,就是很多目录有空格报错

这个是我自己写的库,我前面好几个帖子回复里面都有,麻烦你自己找一下了。
你说的这个问题我注意,我优化一下,先处理一下字符串的空格问题。谢谢反馈。

小涩席 发表于 2021-3-22 19:48

一念一 发表于 2021-3-22 15:40
请问只更改代码中的网址的话,是否可以爬取其它网站的音频呢?

不行的,需要对应的xpath规则,当然你可以把网址告诉我,顺手帮你写一个也可以的。

华月方昊 发表于 2020-3-19 11:15

牛逼,楼主真给力

linguo2625469 发表于 2020-3-19 11:15

诱情可以的很催眠 滑稽

非你莫鼠 发表于 2020-3-19 11:27

有没有成品{:301_997:}

abatou 发表于 2020-3-19 11:28

我觉得这些虚拟的东西已经满足不了我了。不过话是谢谢楼主

ttyp 发表于 2020-3-19 11:33

GetRandomheader库都没有,我把头全删除来,能运行,就是很多目录有空格报错

248595 发表于 2020-3-19 11:58

越听越睡不着

vagrantear 发表于 2020-3-19 12:22

大佬厉害啊,自己写了一个库可还行

Ankess 发表于 2020-3-19 12:27

给力啊耳朵也需要好好休息
页: [1] 2
查看完整版本: 【Python爬虫】睡不着?来一段AMSR,睡前耳部按摩,帮助睡眠。