Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一行命令将count转为CPM/TPM/FPKM

一行命令将count转为CPM/TPM/FPKM

作者头像
生信技能树
发布于 2023-02-27 13:42:22
发布于 2023-02-27 13:42:22
3.9K00
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行

一、背景分析

1.0 爬取目标平台

爬取目标: 小红书蒲公英
爬取目标: 小红书蒲公英

蒲公英平台(用过的人都知道^^,没用过的人一脸懵- -!),在此介绍一下:蒲公英是小红书推出的优质创作者商业合作服务平台,致力于为品牌和博主提供内容合作服务,可以为品牌匹配出最符合合作条件的优质博主。

蒲公英平台,需要有一定权限的企业资质账号才能申请开通(这也是为什么大部分用户不了解)。开通之后,进入【寻找博主->博主广场】页面,即可根据一定的筛选条件过滤出满足的博主列表,如下:
寻找博主页面
寻找博主页面

页面部分:上面是筛选条件,下面是筛选结果。

我用python开发的采集软件,核心爬虫功能分为2大类模块:第一是根据筛选条件爬取博主列表,第二是根据爬取到的博主id进入详情页面爬取详细数据,详情页如下:
某个博主的详情页
某个博主的详情页
通过分析网页接口,开发出了爬虫GUI软件,界面如下:
软件运行界面
软件运行界面

共爬取到34个字段,字段如下:

代码语言:txt
AI代码解释
复制
1	关键词
2	页码
3	小红书昵称
4	小红书号
5	地址
6	机构
7	数据更新至
8	小红书链接
9	粉丝数
10	账号类型
11	图文报价
12	视频报价
13	合作笔记数
14	预估阅读单价_图文
15	图文3秒阅读
16	日常_阅读中位数
17	日常_互动中位数
18	日常_阅读来源发现页占比
19	日常_阅读来源搜索页占比
20	合作_阅读中位数
21	合作_互动中位数
22	合作_阅读来源发现页占比
23	合作_阅读来源搜索页占比
24	女性粉丝占比
25	年龄占比最多的
26	账号评估
27	合作笔记1阅读数
28	合作笔记2阅读数
29	合作笔记3阅读数
30	合作笔记4阅读数
31	合作笔记5阅读数
32	合作笔记6阅读数
33	合作笔记7阅读数
34	合作笔记8阅读数

详细演示数据:(看《蒲公英》这个sheet页)整理到腾讯在线文档了。

1.1 演示视频

软件操作演示视频:

1.2 软件说明

重要说明,请详读:

  1. Windows用户直接双击打开使用,无需安装Python环境,非常方便、适合小白!
  2. 需要在cookie.txt中填入cookie,实现持久化存储,方便长期使用
  3. 支持筛选笔记搜索关键词(笔记关键词和博主关键词不同,注意区分)、笔记类型(不限/图文笔记为主/视频笔记为主)、粉丝数量、图文报价、搜索页范围。其他个性化筛选条件,可以和我沟通定制,只要网页上有的都可以加入
  4. 爬取过程中,有log文件详细记录运行过程,方便回溯
  5. 爬取过程中,自动保存结果到csv文件(每爬一条存一次,防止数据丢失)
  6. 可爬34个关键字段,见1.0章节
  7. 以上爬取字段已经包含,如无法满足个性化要求,可定制开发(接口已调通) 以上。

二、代码讲解

2.0 关于接口

由于采集字段较多,开发者模式中分析接口不止一个,采集程序整合多个接口开发而成,归纳如下:

  1. 博主列表接口
  2. 日常笔记接口
  3. 合作笔记接口
  4. 粉丝数接口
  5. 阅读单价接口
  6. 合作笔记阅读数接口
  7. 所属机构接口

以上。

2.1 爬虫采集模块

软件开发成本较高,代码量大、实现逻辑复杂,为保护个人知识版权,防止恶意盗版软件,不展示爬虫核心代码

2.2 cookie获取

运行软件之前,需要填写cookie值到txt配置文件中,获取方法如下:

开发者模式中获取cookie
开发者模式中获取cookie

开发者模式是各大主流浏览器自带的、专为开发人员分析网站页面的实用工具,普通小白可能不熟悉界面使用,我可以提供一对一指导步骤^^

2.3 软件界面模块

tkinter是Python的内置标准GUI(图形用户界面)工具包。它提供了许多用于创建GUI应用程序的组件和工具,可以用来设计和开发用户友好的界面。tkinter是一个跨平台的工具包,是一个功能强大且易于学习和使用的GUI工具包,非常适合用来开发简单的桌面应用程序和工具。

主窗口部分:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# 创建主窗口
root = tk.Tk()
root.title('蒲公英爬虫-公开版p1.4 | 马哥python说 | 定制')
# 设置窗口大小
root.minsize(width=850, height=650)

部分界面控件:(以搜索关键词为例)

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# 笔记关键词
tk.Label(root, justify='left', text='笔记关键词:').place(x=30, y=65)
entry_kw = tk.Text(root, bg='#ffffff', width=22, height=2, )
entry_kw.place(x=105, y=65, anchor='nw')  # 摆放位置

日志输出控件:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# 运行日志
tk.Label(root, justify='left', text='运行日志:').place(x=30, y=250)
show_list_Frame = tk.Frame(width=780, height=300)  # 创建<消息列表分区>
show_list_Frame.pack_propagate(0)
show_list_Frame.place(x=30, y=270, anchor='nw')  # 摆放位置

2.4 日志模块

在软件开发过程中,日志是非常重要的工具,用于记录应用程序的运行状态、错误信息、调试信息以及其他相关信息。在故障排查、性能监控、跟踪程序运行情况方面有重要作用。同时这也是我的个人编程习惯^^

核心代码:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
def get_logger(self):
	self.logger = logging.getLogger(__name__)
	# 日志格式
	formatter = '[%(asctime)s-%(filename)s][%(funcName)s-%(lineno)d]--%(message)s'
	# 日志级别
	self.logger.setLevel(logging.DEBUG)
	# 控制台日志
	sh = logging.StreamHandler()
	log_formatter = logging.Formatter(formatter, datefmt='%Y-%m-%d %H:%M:%S')
	# info日志文件名
	info_file_name = time.strftime("%Y-%m-%d") + '.log'
	# 将其保存到特定目录
	case_dir = r'./logs/'
	info_handler = TimedRotatingFileHandler(filename=case_dir + info_file_name,
						when='MIDNIGHT',
						interval=1,
						backupCount=7,
						encoding='utf-8')

同级目录下生成的日志文件:

log文件截图
log文件截图

END、文末声明

我是一枚多年程序猿,欢迎技术交流、业务探讨。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Node.js 搭建一个 API 接口服务(实战)
因为最近打算自己搭建一个自己的博客系统,用来记录日常的学习和提升一下写作水平,所以能就打算自己搭建一下前后端项目。在网上找了下,也没有找到合适(现成)的项目,所以就打算自己动手来搭建一下。这篇文章主要描述如何搭建一个node的API接口服务。
五月君
2021/01/27
9K0
Node.js 搭建一个 API 接口服务(实战)
node-koa 框架 项目搭建 🏗
---- 这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」 代码[链接🔗]:(https://gitee.com/yang-yiming1234/koa/tree/master) 持续更新~ 简介 Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了
用户4793865
2023/01/12
3.6K0
Egg.js 笔记二 目录结构和内置对象
Application 是全局应用对象,在一个应用中,只会实例化一个,它继承自 Koa.Application,在它上面我们可以挂载一些全局的方法和对象。我们可以轻松的在插件或者应用中扩展 Application 对象。
tonglei0429
2019/07/22
1.3K0
基于Vue2和Node.js的反欺诈系统设计与实现
最近包工头喊农民工小郑搬砖,小郑搬完砖后沉思片刻,决定写篇小作文分享下,作为一个初学者的全栈项目,去学习它的搭建,到落地,再到部署维护,是非常好的。
江涛学编程
2021/09/01
2.3K0
基于Vue2和Node.js的反欺诈系统设计与实现
Egg-TS-Sequelize的使用
Egg 官方文档:https://www.eggjs.org/zh-CN/tutorials/sequelize
程序员NEO
2023/09/28
3340
Egg-TS-Sequelize的使用
入门 | egg.js 入门之egg-jwt
这里创建并安装完成以后,需要再次初始化俩包,分别为egg-cors与egg-jwt token 生成的验证包
mySoul
2020/08/03
1.5K0
基于 egg.js 构建 graphql api 服务
Egg.js 简介:https://eggjs.org/zh-cn/index.html
4O4
2022/04/25
1.9K0
基于 egg.js 构建 graphql api 服务
koa+react+sequelize搭建博客后台(附源码)
使用koa+react+sequelize搭建博客系统,这篇文章讲述koa+sequelize的开发过程。支持增删改查等功能。
coder_koala
2020/02/20
1.5K0
koa+react+sequelize搭建博客后台(附源码)
eggjs快速入门
每个中间件就像是洋葱的一层,所有的请求经过一个中间件都会执行两次,这样可以非常方便的后置处理逻辑。
不作声
2020/07/06
1.3K0
Serverless + Egg.js 后台管理系统实战
作为一名前端开发者,在选择 Nodejs 后端服务框架时,第一时间会想到 Egg.js,不得不说 Egg.js 是一个非常优秀的企业级框架,它的高扩展性和丰富的插件,极大的提高了开发效率。开发者只需要关注业务就好,比如要使用 redis,引入 egg-redis 插件,然后简单配置就可以了。正因为如此,第一次接触它,我便喜欢上了它,之后也用它开发过不少应用。
网站运维工程师
2020/03/11
5K0
Node.js ORM 框架 sequelize 实践
本文作者:IMWeb zzbozheng 原文出处:IMWeb社区 未经同意,禁止转载 Node.js ORM 框架 sequelize 实践 最近在做积木系统2.0,这次使用的nodejs
IMWeb前端团队
2018/01/08
3.7K0
钢材信息小程序开发总结(三) ---EggJS
使用access_token请求获取前一天的用户画像 注意: 在零点前后数据会获取不到
治电小白菜
2020/08/25
1.4K0
Egg.js试水 - 文章增删改查【前后端分离】
上一篇文章讲的是后端渲染的项目 - Egg.js 试水 - 天气预报。但是没有引入数据库。这次的试水项目是文章的增删改查,将数据库引进,并且实现前后端分离。
Jimmy_is_jimmy
2020/10/15
3.4K0
前端构建 DevOps - 搭建 DevOps 基础平台(上)
在上一个博客中,已经通过 Egg 对 Gitlab Api 进行了基础的封装,本文将会围绕 DevOps 流程介绍项目设计(偏后台),需要读者具备一定的后端知识储备。
Cookieboty
2020/10/23
1.7K0
前端构建 DevOps - 搭建 DevOps 基础平台(上)
治电EggJS开发规范
函数/方法注释放置于函数/方法的上方,主要描述函数/方法功能以及参数类型,参数和返回值说明
治电小白菜
2020/08/25
4.8K0
治电EggJS开发规范
【愚公系列】2022年10月 微信小程序-电商项目-微信支付后端功能实现(node版)
微信支付是腾讯集团旗下的第三方支付平台,致力于为用户和企业提供安全、便捷、专业的在线支付服务。以“微信支付,不止支付”为核心理念,为个人用户创造了多种便民服务和应用场景。微信支付为各类企业以及小微商户提供专业的收款能力,运营能力,资金结算解决方案,以及安全保障。用户可以使用微信支付来购物、吃饭、旅游、就医、交水电费等。企业、商品、门店、用户已经通过微信连在了一起,让智慧生活,变成了现实。
愚公搬代码
2022/10/31
9620
【愚公系列】2022年10月 微信小程序-电商项目-微信支付后端功能实现(node版)
前后端全部用 js 开发是什么体验(Hybrid + Egg.js经验分享)
对于我们而言,在项目初期我们并没有对应两个端的开发人员,并且初期的版本需要大量的迭代和测试,所以在这种条件下采用原生开发是不合适的
五月君
2020/06/28
3K0
前后端全部用 js 开发是什么体验(Hybrid + Egg.js经验分享)
使用 Egg + Vue 开发在线文档管理平台(8000字,手把手教程)
团队中会遇到在线文档管理的需求,包括技术文档,接口文档, excel 文档,和产品原型的托管等需求,一直没有找到合适的开源项目来满足需求,所以动手实现了个文档管理系统(实现起来并不复杂,该教程只是提供思路,并非最佳实践)
一只图雀
2020/12/16
4.1K0
使用 Egg + Vue 开发在线文档管理平台(8000字,手把手教程)
Web前端学习 第8章 egg基础教程4 sequelize
对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。那么,到底如何实现持久化呢?一种简单的方案是采用硬编码方式,为每一种可能的数据库访问操作提供单独的方法。
学习猿地
2020/06/24
1.4K0
Sequelize 系列教程之一对一模型关系
Sequelize 是一个基于 Promise 的 Node.js ORM,目前支持 Postgres、MySQL、SQLite 和 Microsoft SQL Server。它具有强大的事务支持,关联关系、读取和复制等功能。在阅读本文前,如果你对 Sequelize 还不了解,建议先阅读 Sequelize 快速入门 这篇文章。
阿宝哥
2019/11/06
8.7K0
推荐阅读
相关推荐
Node.js 搭建一个 API 接口服务(实战)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验