文档章节

Python爬虫实战之“网易云音乐绝对互粉”

登录-注册
 登录-注册
发布于 2017/02/26 22:07
字数 855
阅读 88
收藏 1
  • 这里是列表文本启动fiddler,打开网易晕音乐官网,进入个人中心粉丝模块 输入图片说明

  • 这里是列表文本查看在fiddler中抓到的包,进行分析 惊奇地发现有个方法叫做 getfollows 好巧哦! 输入图片说明

  • 这里是列表文本对比分析对你已经偷偷取消关注的人与没有对你取消关注的人的数据区别 输入图片说明

  • 这里是列表文本找一个已经对你取消关注的人进行“取消关注操作” 输入图片说明

  • 这里是列表文本编码分两步 第一步:获取你关注的但没有关注你的人 第二部:将这些人进行取关操作 在这个过程中遇到了一些麻烦主要是,网易云音乐对页码进行了加密,没法轻松地获取所有的对你取关的人,我这里采用的是比较笨的办法就是把三十多个跳也页的参数都手动复制下来放到文本文件中。 输入图片说明

  • 三十条页码参数记录- 输入图片说明

import urllib
import http.cookiejar
import ssl
import requests

抓取那些对你取关的人

def getNoMutal(params,enSecKey):
    print(params)
    print(enSecKey)
    data = {'params': str(params.strip()),
            'encSecKey':str(enSecKey.strip())}
    headers = {
    'POST http':'//music.163.com/weapi/user/getfollows/112272936?csrf_token=8c133a69f9cbf30a37e04ef55af6444f HTTP/1.1',
    'Host':'music.163.com',
    'Connection':' keep-alive',
    'Content-Length':' 512',
    'Originv http':'//music.163.com',
    'User-Agent':' Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36',
    'Content-Type':' application/x-www-form-urlencoded',
    'Accept':' */*',
    'Referer':' http://music.163.com/user/follows?id=112272936',
    'Accept-Encoding':' gzip, deflate',
    'Accept-Language':' zh-CN,zh;q=0.8',
    'Cookie':'你的cookie在fiddler中粘过来'}
    r = requests.post('http://music.163.com/weapi/user/getfollows/112272936?csrf_token=8c133a69f9cbf30a37e04ef55af6444f', data=data, headers=headers)
    print(r.text)
    import json
    data = json.loads(r.text)
    defollows=[]
    for follower in data['follow']:
        if follower['mutual']==False:
            defollows.append(follower['userId'])
    print('defollows:'+str(defollows))
    return defollows

对这些用户进行取关

def defollowed(defollows):
    data = {'params': 'c3S6p3BC4SU7idoGy4GpyJ/Az7LlSC0KmIcCfi9435TbeYMrSBtOqgFAqdIwoLecalp1RBLHOvfpuZ/RT3OfwSnJ/zs5TEW'
                       '+PqRWMrCHVcoqm4qFYK72Tm7aLSTCbATvINJ1JPBmDRFntv4TLRNaSA==',
            'encSecKey':'d577dd3f46d316483db1ea103e3e55d4d07cefb055135c4ae462c703c1d24061c6b0b67aa94c3eb10a52da65cc9321f6'
                        'd92b8e2b8635909ae4e0679e01f56a42dd4ff6f34375d0cfbd11cce355bdbfab385b3ea4834e777d17da4631a959b7e9f2'
                        'be23da3e908925bdb2500b5187a57dda16704b1fa9069cae85bdb02344d732'}
    header={
    #'POST http://music.163.com/weapi/user/delfollow/127028008?csrf_token=8c133a69f9cbf30a37e04ef55af6444f HTTP/1.1'
    'Host':' music.163.com',
    'Connection':' keep-alive',
    'Content-Length':' 438',
    'Origin':' http://music.163.com',
    'User-Agent':' Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36',
    'Content-Type':' application/x-www-form-urlencoded',
    'Accept':' */*',
    'Referer':' http://music.163.com/user/home?id=127028008',
    'Accept-Encoding':' gzip, deflate',
    'Accept-Language':' zh-CN,zh;q=0.8',
    'Cookie':'你的cookie在fiddler中粘过来''            
    }
    for id in defollows:
        print('id:'+str(id))
        url='http://music.163.com/weapi/user/delfollow/{userid}?csrf_token=8c133a69f9cbf30a37e04ef55af6444f'.format(userid=str(id))
        print('url:'+url)
        r = requests.post(url,data=data,headers=header)
        print('defollow {userid} {result}'.format(userid=id,result=r.text))

最后运行

if __name__ == '__main__':
    defollows=[]#getNoMutal()

    file = open("params&key")
    index=0
    while 1:
        index=index+1
        line = file.readline()
        if not line:
            break
        else:
            params=line.split('#')[0]
            enSecKey=line.split('#')[1]
            defollows.extend(getNoMutal(params,enSecKey))
    defollowed(defollows)
  • 运行脚本前

输入图片说明

  • 运行脚本后

输入图片说明

© 著作权归作者所有

共有 人打赏支持
登录-注册

登录-注册

粉丝 37
博文 37
码字总数 11215
作品 5
海淀
程序员
Python实用教学:如何用Python玩转各大网站

Hi~,各位小伙伴,Python是目前编程语言中的主流语言之一,也是公认最容易入门的编程语言,因为Python语言近几年的火爆,有很多小伙伴都开始学习这门语言。 编程语言学习,最重要的是“多看代...

W3Cschool小编
07/31
0
0
利用Python制作网易云音乐下载器

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏 导语 似乎好久没有更爬虫相关的内容了。。。 而好多童鞋对爬虫相关的内容比较感兴趣。。。 于是打算更一波。。。 最近事情比较多,实在没...

W3Cschool小编
07/23
0
0
年薪20万Python工程师进阶(1):Python 资源 + 经典练手项目

Python 越来越火爆,最近自己也在学习。整理下一些 Python 资料,和练手的项目。希望对你学习 Python 有所帮助。 1、入门阶段 1 Python 官网 Python 官网 The Python Tutorialdocs.python.o...

程序员八阿哥
05/11
0
0
高级爬虫(一):Scrapy爬虫框架的安装

Hi 小伙伴们差不多有半个月没有更新干货了,一直有点忙,而且这中间还有曲折过程,也就没有更新文章. 但今天无论如何也要更新一篇文章,接下来是爬虫高级篇重点讲解的地方! 最近会连载Scrap...

Python绿色通道
04/22
0
0
Python爬虫代码:淘宝、豆瓣、知乎、微博、QQ、简书等

[0] 一份Python爬虫电子书 https://zhuanlan.zhihu.com/p/28865834 [1] 爬取网易云音乐所有歌曲的评论 https://github.com/RitterHou/music-163 [2] python爬虫代理IP池(proxy pool) https:......

大数据之路
2012/12/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringCloud SpringBoot mybatis分布式Web应用的统一异常处理

我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况。Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用...

itcloud
12分钟前
0
0
c++ std::bind和std::function

定义于头文件 <functional> std::bind 函数绑定,https://zh.cppreference.com/w/cpp/utility/functional/bind // bind 用例#include <iostream>#include <functional> // 自定义的一......

SibylY
14分钟前
0
0
SecureCRT的安装与破解(过程很详细!!!)

SecureCRT的安装与破解(过程很详细!!!) SecureCRT的安装与破解(过程很详细!!!) 使用SecureCRT可以方便用户在windows环境下对linux主机进行管理,这里为大家讲一下SecureCRT的破解方...

DemonsI
19分钟前
0
0
介绍几款可用的web应用防火墙

目前有两款,基于软件和基于应用程序的web应用防火墙。基于软件的产品布置在Web服务器上,而基于应用程序的产品放置在Web服务器和互联网接口之间。两种类型的防火墙都会在数据传入和传出web...

上树的熊
25分钟前
1
0
用Visual Studio开发以太坊智能合约

区块链和以太坊 自从我熟悉区块链、以太坊和智能合约以来,一直失眠。 我一直在阅读,阅读和阅读,最后我能够使用一些工具,他们建议使用以太坊网站官方客户端应用程序(Ethereum Wallet)也...

geek12345
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部