本工具仅限学术交流使用,严格遵循相关法律法规,符合平台内容的合法及合规性,禁止用于任何商业用途!
一、背景分析
1.1 开发背景与功能介绍
我之前开发了几个xhs采集软件,受到了很多相关用户的认可和关注,感谢大家。
曾经和很多用户聊过,他们希望有一个小工具,可以把个人主页的链接(或者uid)转换成redid号,或者反之(把redid号转成主页链接或uid),为了满足这类需求,我特意用python开发了这款工具:xhs_trans_tool
功能很简单,支持2个:
功能1、把主页链接批量转换成redid号:
自动导出转换结果到csv文件:
功能2、把redid号批量转换成主页链接:
自动导出转换结果到csv文件:
以上。
1.2 软件说明
几点重要说明,请详读了解:
- Windows系统、Mac系统均可运行
- 软件通过接口协议爬取,并非通过模拟浏览器等RPA类工具,稳定性较高!
- 主页链接➜redid号:无需安装nodejs。无需填写cookie
- redid号➜主页链接:需要安装nodejs,且需要填写cookie(内附具体配置教程)
- 软件运行完成后,会在当前文件夹(即,软件所在文件夹)生成csv结果文件
- 爬取过程中,每爬一条,存一次csv。并非爬完最后一次性保存!防止因异常中断导致丢失前面的数据(每条间隔1~2s)
- 爬取过程中,有log文件详细记录运行过程,方便回溯
二、主要技术
2.1 模块介绍
软件全部模块采用python语言开发,主要分工如下:
tkinter:GUI软件界面
requests:爬虫请求
json:解析响应数据
time:间隔等待,防止反爬
csv:保存csv结果
logging:日志记录
出于版权考虑,暂不公开完整源码,仅向用户提供软件使用。
2.2 部分源码
软件界面:
# 创建主窗口
root = tk.Tk()
root.title('redbook转换工具v1.0 | 马哥python说')
# 设置窗口大小
root.minsize(width=850, height=660)
爬虫请求:
# 发送请求
r = requests.post(url, headers=h1, data=json_data)
# 接收响应数据
json_data = r.json()
保存数据:
# 存入csv文件
with open(ins.result_file, 'a+', encoding='utf_8_sig', newline='') as f:
writer = csv.writer(f)
writer.writerow([url, redId])
日志记录:
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')
self.logger.addHandler(sh)
sh.setFormatter(log_formatter)
self.logger.addHandler(info_handler)
info_handler.setFormatter(log_formatter)
return self.logger
三、演示视频
软件使用过程演示:
【软件演示】小红书批量转换工具,主页链接和号互转!
四、软件首发
“小红书转换工具”首发公号"老男孩的平凡之路”,欢迎技术交流、深入探讨。