﻿//cookie登录小红书 > 打开指定笔记页面 > 一次展开全部回复 > 滚动到底部加载全部评论 > 一次采集并过滤评论信息 > 保存到数据库
//滚动到底部,发现有 - THE END - 就自动停止滚动

浏览器_启动()
浏览器_删除Cookie()
浏览器_设置Cookie(`https://www.xiaohongshu.com/`, `xiaohongshuCookie`)
评论抓取()

函数 评论抓取()
{
	输出_红色(`评论抓取`)
	浏览器_跳转(`https://www.xiaohongshu.com/explore/6960acf3000000002202d57c?xsec_token=ABHx6F235rQbicwsGcQyJJkX56_QdNGoUyurkX5dpUNMU=&xsec_source=pc_feed`)
	等待(2000)
	笔记标题 = 浏览器_取元素Text(`[id="detail-title"]`)
	输出_灰色(`笔记标题:` + 笔记标题)

	//展开全部回复
	计次 = 1
	循环 = 1000
	计次循环(循环)
	{
		输出_灰色(`当前:${计次}/${循环}`)
		如果(浏览器_元素是否存在(`[class="show-more"]`, 1000))
		{
			浏览器_点击(`[class="show-more"]`) //展开x条回复
			输出_绿色(`展开回复..`)
			等待(500)
		}

		否则
		{
			输出_橙色(`已全部展开..`)
			跳出循环
		}

	}


	//滚动到底部加载全部评论
	计次 = 1
	循环 = 3000
	计次循环(循环)
	{
		输出_灰色(`当前:${计次}/${循环}`)
		浏览器_鼠标中键_下滚(500, `[class="note-scroller"]`) //每次多滚动一点
		计次++
		等待(500)
		如果(浏览器_取源码_包含(`- THE END -`, 200, 1000))
		{
			输出(`已加载全部评论`)
			//找到 - THE END - 后,可能还需要滚一两次? 具体看浏览器大小
			跳出循环()
		}

		否则
		{
			输出(`未到底部,继续滚动..`)
		}



	}

	//一次抓取并写入数据库
	x = 浏览器_取元素Text_全部(`[class="content"]`)
	输出(`x:` + x)
	数组 = 文本_分割(x, `\r\n`)
	成员数 = 数组_取成员数(数组)
	输出(`成员数:` + 成员数)
	输出(`写入数据库..`)
	设置_隐藏输出()
	i = 0
	计次循环(成员数)
	{
		当前评论 = 数组[i]
		输出(`当前评论 处理前:` + 当前评论)
		//正则_替换("回复 崔东东 : 哦这样", "^回复\\s*[^:：]+[:：]\\s*", "")
		当前评论 = 正则_替换(当前评论, "^回复\\s*[^:：]+[:：]\\s*", "")
		输出(`当前评论 处理后:` + 当前评论)
		数据库_写入_唯一(`数据.db`, `表名`, `列名`, 当前评论)
		i++
	}

	设置_显示输出()
	输出(`写入数据库完成`)
}