您的位置 首页 > 腾讯云社区

爬虫(106)pymongo 存储周杰伦歌曲信息---公众号---志学Python

我们打开qq音乐的网址:https://y.qq.com/ 然后输入 周杰伦, 点击搜索; 再打击歌词那一项,F12打开控制台,打开如下:

然后你就会发现, 这右边的MusicJsonCallback8040753716748157不就是我们需要的吗?

ok,直接复制黏贴进我们的代码。jsonpCallback:

MusicJsonCallback8040753716748157,完美! 然后右键这一个文件, 选择 复制该网址, 把data里面的searchid 替换成网址上面的参数searchId,w 替换成你搜索的歌曲名;

最后一步, 看看你搜索的歌手有多少页, 周杰伦的是有20页, ok, 把mian函数改一下, 改成从1到20页的数据,全部爬下来;

#!/usr/bin/python # -*- coding:utf-8 -*- import requests import json import pymongo import time def main(page): print(page) url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp' #这里数据只有三个是需要变的,分别是:jsonpCallback,w, searchid data = {'qqmusic_ver': 1298, 'remoteplace': 'txt.yqq.lyric', 'inCharset': 'utf8', 'sem': 1, 'ct': 24, 'catZhida': 1, 'p': page, 'needNewCode': 0, 'platform': 'yqq', 'lossless': 0, 'notice': 0, 'format': 'jsonp', 'outCharset': 'utf-8', 'loginUin': 0, 'jsonpCallback': 'MusicJsonCallback19507963135827455', 'searchid': '98485846416392878', 'hostUin': 0, 'n': 10, 'g_tk': 5381, 't': 7, 'w': '周杰伦', 'aggr': 0 } headers = {'content-type': 'application/json', 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'} r = requests.get(url, params = data, headers = headers) time.sleep(3) #截取 第35个字符到最后一个 text = r.text[35:-1] # print(text) result = json.loads(text) if result['code'] == 0: for list in result['data']['lyric']['list']: item = { 'albumname': list['albumname'], 'content': list['content'] } mongoInsert(item) # print (list) # print(item) def mongoInsert(item): #进入数据库存储 client = pymongo.MongoClient(host='localhost',port=27017) db = client.qqmusic # item为指定集合名 collection = db.JayZhou res = collection.insert(item) print(res) print('插入成功') if __name__ == '__main__': #页数最多为20 ,根据歌手的歌曲多少决定 for i in range(1, 20): main(i) ---来自腾讯云社区的---公众号---志学Python

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: