CSDN涨粉就这几招

news2025/1/11 20:44:28

目录

    • 说明
    • 涨粉不可不知的几件事
    • 几个常规的涨粉之道
    • CSDN的数据运营之道
      • 粉丝列表
      • 关注列表
      • 关注某人
      • 取消关注
      • 获得某个用户的主要信息:昵称、排名、原创数、粉丝数等
    • 其它数据
    • 有了数据,怎么涨粉?

说明

直到今年,我才开始重视涨粉,看着很多年轻码农的粉丝数过万,有点惭愧。直接在CSDN上搜索了一下:
在这里插入图片描述
看来这个涨粉事情是很多码农关心的事情啊,为什么呢?因为今年CSDN对平台做了调整,鼓励优质内容和原创,只有粉丝数过500才能上传付费资源。我看了一下上面这些热门文章,最终的结论是:涨粉无捷径,数据有学问,下面说说我的发现。

涨粉不可不知的几件事

首先说明,违法违规的涨粉途径不要去做:

  • 例如网上购买CSDN账号:比较贵,不值得也不屑于去干
  • 互推。拉个朋友圈,大家互相关注:也没那么简单,费神费力,君子不为。
  • 刷粉工具?目前还没有,除非你能破解CSDN的登录token生成机制
  • 或者你暴力破解别的用户的密码——CSDN有很多非活跃用户。然后用别人账号登录,再替你刷粉。
  • 刷阅读量来涨粉?会被封号,你当然能通过很多代理IP刷上来。不过也是君子不为。

几个常规的涨粉之道

  • 尽量写优质长文,注意配图和排版,整体逻辑要清晰,文字不要太做作,也不要太死板。读者读你的文章可是付出了时间的。
  • 发文时选择“粉丝可见”,这里就不贴图了。
  • 关注热榜、排行榜: https://blog.csdn.net/rank/list/content
  • 回答问题,多参与BBS讨论区的交流,扩大影响力

CSDN的数据运营之道

下面才是本文的重点。CSDN上有各式各样的数据,要知道这是国内第一大技术社区,3000万+的用户群体。所以上面产生的数据是值得分析研究的。好在CSDN比较开放,这些数据比较容易获取。

  • 用户ID,以及用户的主要信息
  • 社区列表
  • 粉丝和关注的人
  • 新增粉丝来源
  • 阅读量
  • 还有各种统计数据,在“个人中心”可以看到

先说说怎么获得这些数据,当然是通过程序。网上有写爬虫获取的,采用WebMagic,其实大部分数据无需那么复杂,简单的python几行脚本就能搞掂。下面举例说明。

粉丝列表

下面代码获得某个用户的全部粉丝列表。这个API无需登录,直接分页查询即可:

 def get_fans(self, user_id):       
     fans = []
     id = '0'
     for x in range(1, 20): ## 此处范围自己调节
         url = f'https://blog.csdn.net/community/home-api/v2/get-fans-list?page={x}&pageSize=20&id={id}&noMore=false&blogUsername={user_id}'
         print(url)
         response = self.session.get(url, headers=HEADERS, verify=False)
         data = json.loads(response.text)
         users = data['data']['list']
         if users == None:
             break
         print(f'抓取了{len(users)}个粉丝')
         for user in users:
             fans.append(user['username'])
             id = user['id']
     return fans

关注列表

获得某个用户的关注列表也无需登录,同样是分页查询:

def fetch_my_follows(self, user_id):
    '''获得我关注的人'''
    follows = []
    for x in range(1, 101): ## 此处自行调节范围        
        url = f'https://blog.csdn.net/community/home-api/v1/get-follow-list?page={x}&size=20&noMore=false&blogUsername={user_id}'
        response = self.session.get(url, headers=HEADERS, verify=False)
        if response.status_code == 200:
            data = json.loads(response.text)
            users = data['data']['list']
            if users == None:
                break
            for user in users:
                follows.append(user['username'])
    return follows

关注某人

用户owner关注用户user_id,可以采用如下代码:

def follow_user(self, owner, user_id):
      self.session.cookies.update(
          {'UserToken': USER_TOKEN, 'UserName': owner, 'dc_session_id': SESSION_ID})     
      data = {"username": owner, "follow": user_id, "source": "ME", "fromType": "pc", "detailSourceName": "个人主页"}
      response = self.session.post('https://mp-action.csdn.net/interact/wrapper/pc/fans/v1/api/follow', 
                                   headers=HEADERS, json=data, verify=False)
      return response

此函数需要先登录,你可以在浏览器里登录一下,通过抓包工具拿到UserToken和dc_session_id即可。当然dev_tool一样可以。但是,我怎么找到需要这两个cookie值呢?靠的是mitmproxy这个代理工具。有了这两个cookie值,你能调用很多API。但注意有时长限制。
在这里插入图片描述
其它cookie值没有用。大家可以参考我写的【爬虫与逆向】两个mitmproxy实例级联轻松调试抓包过程

取消关注

和上面一样,取得UserToken和session_id即可:

  def unfollow_user(self, owner, user_id):
  
      self.session.cookies.update(
          {'UserToken': USER_TOKEN, 'UserName': owner, 'dc_session_id': SESSION_ID})     
      data = {"username": owner, "follow": user_id, "source": "ME", "fromType": "pc", "detailSourceName": "个人主页"}
      response = self.session.post('https://mp-action.csdn.net/interact/wrapper/pc/fans/v1/api/unFollow',
                                   headers=HEADERS, json=data, verify=False)
      return response

但是,注意:每天只能取关30次。
在这里插入图片描述

获得某个用户的主要信息:昵称、排名、原创数、粉丝数等

此API无需登录,在每个用户主页即可获得:

  def get_userinfo(self, user_id):
       url = f'https://blog.csdn.net/{user_id}'
       response = self.session.get(url, headers=HEADERS, verify=False)
       soup = BeautifulSoup(response.content, 'lxml')
       dom = etree.HTML(str(soup))
       dao = csdn_dao.CsdnDao()
       user = csdn_db_model.CsdnUser()
       # 别名
       alias = soup.select("div.user-profile-head-name>div:first-child")[0].text
       # 原创
       user.innovates = self.get_intvalue(
           dom.xpath('//div[@class="user-profile-head-info-r-c"]//div[text()="原创"]/preceding-sibling::div[1]'))
       user.ranking = self.get_intvalue(
           dom.xpath('//div[@class="user-profile-head-info-r-c"]//div[text()="排名"]/preceding-sibling::div[1]'))
       user.fans_count = self.get_intvalue(
           dom.xpath('//div[@class="user-profile-head-info-r-c"]//div[text()="粉丝"]/preceding-sibling::div[1]'))
       dao.update_by_id(user_id, user)

其它数据

获得用户列表,社区列表,都是如法炮制,后续我贴上来。

有了数据,怎么涨粉?

当然不能直接涨粉,只能帮你涨粉,例如你关注那些优质用户,和你有技术方向相同的用户。给他们发私信,我这里也有程序自动发送私信。关注别人多了,100个里就会有一个回关你。这不就涨粉了吗?当然,CSDN只能最多关注2000个用户,但是你可以不断调换嘛。
把这些基本数据汇聚到一起后,就能分析出活跃用户,他的涨粉规律,以及热门文章了,后续我会把优质用户的文章汇集成PDF,方便大家浏览。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75124.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

_2LeetCode代码随想录算法训练营第二天C++

_2LeetCode代码随想录算法训练营第二天C LeetCode 题目列表: 977.有序数组的平方209.长度最小的子数组59.螺旋矩阵II 977.有序数组的平方 题目所述数组含有负数。 双指针的思路 双指针的思路: 最大元素一定是在两边,考虑用两个指针逐步…

PHY寄存器解读

以太网PHY寄存器分析 1 1、以太网PHY标准寄存器分析 2 1.1 Control Register 2 1.2 Status register 5 1.3 PHY Identifier Register 8 1.4 Auto-Negotiation Advertisement Register 8 1.5 Auto-Negotiation Link Partner Base Page Ability Register…

NY CREATE和Bleximo宣布达成新量子计算研发合作

(图片来源:网络) 12月7日,全栈量子计算系统集成公司Bleximo Corp.宣布:计划将其原型设计和营销业务扩展到纽约北部的奥尔巴尼纳米技术综合体(Albany NanoTech Complex)。该公司还将与纽约研究、经济发展、技术、工程和…

llvm编译、自带例子toy、llvm编译报错解决、.lib中搜索指定函数名

hunterzju/llvm-tutorial cs.cmu.edu/academic/class/15745-s14/public/lectures 编译llvm cd /d d:\llvm-home\ git clone gitgitcode.net:pubz/llvm-project.gitcd /d d:\llvm-home\llvm-project\ git status #HEAD detached at llvmorg-11.0.0set PATH%PATH%;D:\Python38\S…

ImmunoChemistry丨艾美捷NIR-FLIVO 690游离染料对照试验说明书

ImmunoChemistry艾美捷ICT近红外(NIR)-FLIVO示踪剂与无NIR-FLIVO染料对照分析结合使用。无NIR-FLIVO染料控制试验使用无NIR-FRIVO染料检测试剂(*Dylight690游离染料)。注射时,游离染料对照物和示踪物试剂都会产生荧光信…

Java集合 超详细版+面试题

程序总是根据运行时才知道的某些条件去创建新的对象。在此之前,无法知道所需对象的数量甚至确切类型。为了解决这个普遍的编程问题,需要在任意时刻和任意位置创建任意数量的对象。下面讲详细介绍如何使用标准库中的集合类。 集合框架图 简化图&#xff…

遗传算法求解问题(1)

问题描述 在一个长度为 n 的数组中选择 10 个元素&#xff0c;使得 10个元素的和 与 该元组中元素总和的 1/10 接近 问题约束 数组长度 n&#xff1a;10 < n < 100; 数组中没有重复的数字&#xff0c;所以选择的10个元素中也没有重复的数字 遗传算法原理 请移步我上…

国产第一颗7A的车规级马达驱动芯片TMI8140-Q1

新能源汽车因其电动化和智能化的特性&#xff0c;需要大量的马达驱动、DC/DC、高效率Buck & BuckBoost等车规级芯片&#xff0c;成为名副其实的“芯片大户”&#xff01; 以往制造一辆传统汽车一般需要用到500-600颗左右的芯片&#xff0c;而一台高性能的新能源汽车需要芯…

上传IPA包到App Store​

我们都经历过上传IPA包到App Store时的痛苦&#xff01;&#xff01;&#xff01;​ 第一步&#xff1a;通过Xcode-> Archive&#xff0c;Validate App&#xff0c;成功&#xff01;​ 第二步&#xff1a;通过Xcode-> Archive&#xff0c;Distribute App&#xff0c;成…

从股票市场选择配对的股票:共同趋势模型与套利定价理论

股价取对数之后的序列建模为随机游走。现在把取对数之后的股价当作是由一个随机游走和一个平稳时序组成&#xff1a; 是随机游走部分&#xff0c;是平稳部分。取对数后的股价求差就得到回报。所以在时间的回报表示为&#xff1a; 表示非平稳部分的回报&#xff0c;表示平稳部分…

如何基于运维事件中心通过 logstash 进行日志关键字监控

日常运维过程中&#xff0c;很多场景都需要对日志关键字进行监测&#xff0c;以便第一时间发现应用/业务相关异常&#xff0c;这是一种比较常见的监控需求&#xff0c;所以也有很多方法可以实现关键字告警。对于简单的告警可以通过一些传统的监控工具实现&#xff0c;但对于体量…

从头开始搭建一个SpringBoot项目--SpringSecurity的配置

从头开始搭建一个SpringBoot项目--SpringSecurity的配置前言本文的目标使用到的依赖、Redis配置、通用返回实体类依赖Redis项目里的配置通用返回实体ResultResultCodeResultUtil配置文件配置的目录结构Spring Security的配置信息SecurityConfigWebMVCConfig用到的类及代码自定义…

深入浅出自定义创建spring-boot-starter

深入浅出自定义创建spring-boot-starter https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-auto-configuration 快速入手 第一步&#xff1a;新建模块 第二步&#xff1a;修改依赖 <?xml version"1.0" e…

关键词(三)

关键词一.最冤枉的关键字—sizeof二.“简单”的布尔类型—_Bool一.最冤枉的关键字—sizeof 前面我们说过定义变量是需要空间的&#xff08;声明不需要&#xff09;&#xff0c;同时你需要有类型像int,char…这些不同的类型会在内存中开辟不同大小的空间&#xff0c;而sizeof就可…

Web安全测试工具AppScan简述

01 安全测试的对象 了解常见的Web应用安全漏洞&#xff0c;参考OWASP Top 10 2017。 理解这些常见漏洞的攻击原理&#xff0c;如何判断系统是否存在这些漏洞、如何防止这些漏洞。 02 安全测试的实施 SQL注入测试 确认所有的解释器都明确的将不可信数据从命令语句或者查询语…

微服务囧途之BFF层登场

从单体架构演化为微服务架构后&#xff0c;架构者的期望是“模块A”“模块B” “后端服务”。 场景一 Web端和Mobile端都有一个详情页面&#xff0c;需要调用模块A的getDetail接口获取数据。假设Web端实际需要展示的字段是20个&#xff0c;Mobile端实际需要展示的字段是10个…

记一次Metrics-server异常

报错 前几天测试环境k8s集群做etcd的备份恢复。 所有的pod都起来了&#xff0c;包括metrics-server的状态也是 Running,部署新pod也没有异常&#xff0c;结果kubectl top 请求的时候报错了 Error from server (ServiceUnavailable): the server is currently unable to handle …

Spring cloud Consul 服务注册中心实战

Spring cloud Consul服务注册中心一、简介二、功能三、角色四、工作原理1、服务注册及发现2、服务调用五、起步1、下载2、安装六、实例一、简介 Consul 用于实现分布式系统的服务注册与配置&#xff0c;与其它方案相比&#xff0c;Consul 更 “一站式”&#xff0c;内置了服务…

移植lighttpd笔记

一、前言 lighttpd交叉编译并移植到iTop4412平台 二、编译环境 ubuntu 18.04pcrelighttpd交叉编译链:arm-none-linux-gnueabi三、编译过程 1.pcre交叉编译 tar -xvf pcre-8.38.tar.bz2 cd pcre-8.38/ ./configure --host=arm-none-linux-gnueabi --prefix=/ --enable-utf8 …

IDEA中如何实现 git stash 命令的可视化操作?

目录 问题现象&#xff1a; 问题分析&#xff1a; 拓展&#xff1a;git stash 相关命令 1、git stash 2、git stash save 注释 3、git stash list 4、git stash pop 5、git stash apply stash{编号} 6、git stash drop stash{编号} 7、git stash clear 8、git stash…