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()
'''

上面已经分类好抓取到内容,但这只是抓取一页的粉丝,只是测试抓取是否成功。

posted @ 2020-10-02 16:10  凹凸曼大人  阅读(908)  评论(0)    收藏  举报