吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6163|回复: 13
收起左侧

[Python 转载] 【Python爬虫】睡不着?来一段AMSR,睡前耳部按摩,帮助睡眠。

[复制链接]
小涩席 发表于 2020-3-19 11:00
本帖最后由 小涩席 于 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)[2:-2]
    title = str(Title)[2:-2]
    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[0], head), Args[1], 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
有没有成品
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
给力啊耳朵也需要好好休息
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 10:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表