Python抓取网易云粉丝,利用API 【二】
import requests import time import random import numpy as np import json import os from bs4 import BeautifulSoup headers = {'Host': 'music.163.com', 'Connection': 'keep-alive', 'Content-Length': '476', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': '*/*', 'Origin':'https://music.163.com', 'Sec-Fetch-Site': 'same-origin', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Dest': 'empty', 'Referer': 'https://music.163.com/user/fans?id=1411492497', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'zh-CN,zh;q=0.9', #'Cookie': '_iuqxldmzr_=32; _ntes_nnid=008eb89f93bb80b8c5abbbfeb29cf783,1601351876041; _ntes_nuid=008eb89f93bb80b8c5abbbfeb29cf783; NMTID=00OjXQcC8_wl8Qc5Eyzj_hKZKF_GlUAAAF02AJ4-A; WM_NI=Nz8nT1vsX8DoejbrC5yMqBrqv70bOcl%2Fe9pgZSO9wSff8VZdQamhdi38Tu5LOB4kn7SaIJfCij4ENk3o9AkK0xpJ9ALg8jqb0bfyIAprddlPL1%2FzcgWpVXoiyEbZoNNKdHQ%3D; WM_NIKE=9ca17ae2e6ffcda170e2e6eea2e47b9bbaaf93b6508d9a8ab7d44b828b9aafb546a2909db9b3489c949eaff22af0fea7c3b92a8ea6f88fd73bb6ad98d9c765a7b6ae93c23fbb93bfa3f17bb6e90083ce69b0f1abdaf36d9a8d81daf659a6baf8b7d97093bfa389e763f1e89c96b8488d9efc8ced3d91bf87abe549abb6fca6cd61f1b1f7a2ea41f4a8c0abbc4b90b9f88bf46af4beaa9acc4bb4aeac85ef5c90efe19be26d95b09ab9ee63bb9baebbee468e95aca9d437e2a3; WM_TID=5UHlf7z1yZ1FQBVRREY%2FJaeDTwOCfBMs; JSESSIONID-WYYY=khAdF6WsaT8Vl%2FBmeuUxNUJzXuSo9AuMAkkyWuiGbGlShWwbk%5CW3flpBsDz0ZTNpKPz8PcvsO%2FYH8jX9F07a5ACh0KqO5O0nAoEJO5W%2FR8yfJSJdCm95FQaQxo7QQzQ%2FfJpypzjeXQI8RO3opWeXr1x7z1GUBQQ2sn4P5sEWeDNkPoSO%3A1601382242186' } url = 'https://music.163.com/weapi/user/getfolloweds?csrf_token=' #payload = {"params": "9XF7hjblVik3GtlIL+qnj89FSxZniqBCgNQp/MC8sl2Bnh0+UBdiNELWLWE4sH5ewDJBmdgfCJsOGtAV+DHgaBYQ70n4zPJHXxzxh7ZogOe7+UIXMS+Zi9R4W2Yhz9aZ1g8Wl6cz5Fzw70F4thj+tL6YcLRd4ISi1TBFsVikMhb41eFj0PMkAjNH8HysS3B0", "encSecKey": "735f184a826789473c8123979b51608ac82c2be7142ebaa300c8b1787c34155336c6dce64bc9eeb74a66fc9ecb51e20e7e03e354943cfea3ebedec850964cac70740af2c7f5a2f5ac2c4c46071063bcd3b7059722be2d866248bd9915d9b6cea870b06e0d2bc0ceda65ddf6b8de4bded25c6bf2012fe71080ab8d36c962612fa"} data = { 'params': 'Grlqt7LFGQLY9bLY+dS0JmS9JjdKXb9m+F0GltWxiWvI8Ch5alywQCCBSGhc/lIG/bkdjR8a0ds1GPb/4AxZ1LU4fCCoxcGpCKyoZfJna4uxgZ/hmU+3IVn+YgnzFK9rX17EV2pj6XF2OzARcnZcpqjEQzdVZ0TIVeRnj+BZLmBcZfVrO8ee0vKWyxYxRyPZ', 'encSecKey': '19220d35ef6898df745f0f9f9a5f0eaf8545dfb33921ace638458b124f653f8213d5462b7e10d72c186a58bc91ca619565e2a3faf79cd361612ed9ab42ad88ba2d1ece7801c7e70e9c6d2697118acf62fbbda36b786fa87ecc93998d421e9557b12ec6200e0d4f2ad2faf7f10f3c9e7ddaa75f52ae09dd75fc73a8ac9eda8845', } # 与 get 请求一样,r 为响应对象 r = requests.post(url=url, data=data,headers=headers,verify=False) # 查看响应结果 t= r.json() print(r.text) heji = [] ''' for user in json.loads(r.text)['followeds']: mingzi = user['nickname'] guanzhu = user['follows'] fensi = user['followeds'] dongtai = user['eventCount'] shuju = '名字'+':'+ str(mingzi) +';'+'动态'+':'+str(dongtai) +';'+'关注'+':'+str(guanzhu) +';'+'粉丝'+':'+ str(fensi)+ '\n' heji.append(shuju) print(shuju) #heji= ''.join(heji) heji1=[] heji2 = [] for i in range(len(heji)): fp = '鱿小鱼粉丝' + str(i) + '.txt' with open(fp,'a',encoding='utf-8') as fn: # 如果文件存在时,先进行清空,实现对一个文件重复 pass fs = round(os.path.getsize(fp) / float(1024 * 1024), 2) # 将文件大小的单位转换成MB heji1.append(fs) heji2.append(fp) print(fs) for t in range(len(heji)): with open(heji2[t], 'a+', encoding='utf-8') as fn: fn.write(heji[t]) ''' ''' elif heji[t] >= 1: # 如果文件大小超过1MB时,重新写入另一个文件 i = i + 1 fp = '鱿小鱼粉丝' + str(i) + '.txt' with open(heji2[t], 'a+', encoding='utf-8') as fn: fn.write(heji) ''' ''' i = 0 fs = round(os.path.getsize(fp) / float(1024 * 1024), 2) # 将文件大小的单位转换成MB if fs >= 1: # 如果文件大小超过1MB时,重新写入另一个文件 i= i +1 with open(fp, 'a+', encoding='utf-8') as fn: fn.write(heji) ''' ''' with open('鱿小鱼.txt', 'a+',encoding='utf-8') as q: q.write(heji) q.close() ''' ''' response = requests.post(url=url, params=None, headers={'Content-Type':'application/x-www-form-urlencoded'}) with open("%s.ts" % page, "wb") as f: f.write(response.content) print("下载成功") f.close() '''
上面已经分类好抓取到内容,但这只是抓取一页的粉丝,只是测试抓取是否成功。
如果人生还有重来,那就不叫人生。

浙公网安备 33010602011771号