评论采集源码:自动化采集、意向客户识别、批量提取

《抖音视频评论采集|拓客系统|C#源码》内容结构
这个里面包含了服务端和客户端,无需登录账号和绑定cookie
QQ:290615413
当然也可以自己通过源码写一个接口部署到服务器上 进行三方调用评论采集
image
image

🎯(1)系统定位:拓客系统
云端自动采集
无需登录抖音
不占用本地电脑
三大模式覆盖所有拓客场景

💥(2)行业痛点(写软文必备)
手动查看评论效率极低
无法筛选意向客户
频繁操作容易风控
无法批量采集同行视频评论
本地脚本必须开机运行
🚀(3)系统价值(解决方案)
云端自动采集
三大提取模式
评论监控词自动识别意向客户
批量管理、批量导出
🔍(4)三大提取模式(非常适合写营销文)
① 关键词视频评论提取
适合行业拓客(装修、减肥、祛痘、情感等)

② 博主视频评论提取
适合同行拓客(精准度最高)

③ 单视频评论提取
适合爆款视频拓客

🖥(5)系统操作说明(可直接写成产品文档)
首页
新建关键词任务
新建博主任务
新建单视频任务
任务管理(编辑、删除、重试)
查看命中/未命中评论
评论详情(含二维码)
采集代码片段

int video_id_data_count = 0;

string htmlContent = chromeBrowser.GetSourceAsync().Result;

jieshu = htmlContent;

string input = htmlContent;

string input1 = input;

// < li class=「MgWTwktU B9KMVC9A」>

string pattern = 「<li class=\」SwZLHMKk SEbmeLLH\「>(.*?)」;

// string pattern = 「<li class=\」HN50D2ec Z3LKqldT\「>(.*?)」;

// string pattern = 「<li class=\」MgWTwktU B9KMVC9A\「>(.*?)」;

// string pattern = 「<li class=\」MgWTwktU search-result-card B9KMVC9A\「>(.*?)」;

MatchCollection matches = Regex.Matches(input1, pattern);

foreach (Match match in matches)

{

string aaaaa = match.Groups[1].Value;

string url = aaaaa;

string pattern1 = @「/video/(\d+)」;

Match match1 = Regex.Match(url, pattern1);

if (match1.Success)

{

string id = match1.Groups[1].Value;

string li_id = 「」;

int li_count = 0;

// while (li_count<listBox1.Items.Count)

OleDbCommand comm = new OleDbCommand(「select count (*) from video_id where xnumbers=『」 + t_xnumbers.Text.Trim() + 「』 and mess=『」 + id + 「』」, ole_con);

ole_con.Open();

OleDbDataReader dr = comm.ExecuteReader();

if (dr.Read())

{

try

{

video_id_data_count = Convert.ToInt32(dr.GetValue(0));

}

catch

{

video_id_data_count = 0;

}

}

ole_con.Close();

if (video_id_data_count == 0)

{

OleDbCommand comm1 = new OleDbCommand(「insert into video_id (mess,xnumbers) values (『」 + id + 「』,『」 + t_xnumbers.Text.Trim() + 「』)」, ole_con);

ole_con.Open();

comm1.ExecuteNonQuery();

ole_con.Close();

listBox1.Invoke(new MethodInvoker(() =>

{

string li_name = 「」;

int count_li_d = 0;

SqlCommand comm6_1 = new SqlCommand(「select count (*) from li_d where username=『」 + t_username.Text.Trim() + 「』」, conn);

conn.Open();

SqlDataReader dr_61 = comm6_1.ExecuteReader();

if (dr_61.Read())

{

try

{

count_li_d = Convert.ToInt32(dr_61.GetValue(0));

}

catch

{

count_li_d = 0;

}

}

else

{

count_li_d = 0;

}

conn.Close();

if (count_li_d == 0)

{

SqlCommand comm6 = new SqlCommand(「select name,id from li ORDER BY NEWID() 」, conn);

conn.Open();

SqlDataReader dr6 = comm6.ExecuteReader();

if (dr6.Read())

{

li_name = dr6.GetString(0).Trim();

}

conn.Close();

}

else

{

SqlCommand comm6 = new SqlCommand(「select name,id from li_d where username=『」 + t_username.Text.Trim() + 「』 ORDER BY NEWID() 」, conn);

conn.Open();

SqlDataReader dr6 = comm6.ExecuteReader();

if (dr6.Read())

{

li_name = dr6.GetString(0).Trim();

}

conn.Close();

}

//else

//{

// SqlCommand comm6 = new SqlCommand(「select name,id from li1 ORDER BY NEWID() 」, conn);

// conn.Open();

// SqlDataReader dr6 = comm6.ExecuteReader();

// if (dr6.Read())

// {

// li_name = dr6.GetString(0).Trim();

// }

// conn.Close();

//}

int li = 0;

if (t_username.Text.Trim() == 「he」)

{

li = 1;

}

else

{

li = 0;

}

SqlCommand comm2 = new SqlCommand(「insert into video_id (username,xnumbers,video_id,li_name,dingshi,li) values (『」 + t_username.Text.Trim() + 「』,『」 + t_xnumbers.Text.Trim() + 「』,『」 + id + 「』,『」 + li_name.Trim() + 「』,『」+dingshi.Trim ()+「』,」+li+「)」, conn);

conn.Open();

comm2.ExecuteNonQuery();

conn.Close();

SqlCommand comm3 = new SqlCommand(「update mission set shipin_count=shipin_count+1 where xnumbers=『」 + t_xnumbers.Text.Trim() + 「』」, conn);

conn.Open();

comm3.ExecuteNonQuery();

conn.Close();

}));

}

// listBox1.Items.Add(id);

//添加 listview

// add_video_sousuo(id);

}

}

9.2:关键词搜索视频筛选视频时间区间代码片段

if (htmlContent.Contains(「jjU9T0dQ」))//悬停筛选条件

{

//可筛选

//鼠标悬停进行筛选

shaixuan_xuanting = 1;

string script = 「var element = document.querySelector(『.jjU9T0dQ』);」 +

「var event = new MouseEvent(『mouseover』, { bubbles: true });」 +

「element.dispatchEvent(event);」;

chromeBrowser.ExecuteScriptAsync(script);

Thread.Sleep(3000);

if (t_shaixuan.Text.Trim() == 「一天内」)

{

shaixuan_dianji_yitiannei();

Thread.Sleep(3000);

}

if (t_shaixuan.Text.Trim() == 「一周内」)

{

shaixuan_dianji_yizhou();

Thread.Sleep(3000);

}

if (t_shaixuan.Text.Trim() == 「半年内」)

{

shaixuan_dianji_bannian();

Thread.Sleep(3000);

}

//string html1 = chromeBrowser2.GetSourceAsync().Result;

}

private void shaixuan_dianji_yitiannei()//一天内

{

string script1 = @「

var latestRelease = Array.from(document.querySelectorAll(『.eXMmo3JR』)).find (el => el.textContent.trim() === 『一天内』);

if (latestRelease) {

latestRelease.click();

} else {

console .log(『Element not found』);

}

「;

chromeBrowser.EvaluateScriptAsync(script1);

}

private void shaixuan_dianji_yizhou()//一周内

{

string script1 = @「

var latestRelease = Array.from(document.querySelectorAll(『.eXMmo3JR』)).find(el => el.textContent.trim() === 『一周内』);

if (latestRelease) {

latestRelease.click();

} else {

console.log(『Element not found』);

}

「;

chromeBrowser.EvaluateScriptAsync(script1);

}

private void shaixuan_dianji_bannian()//一天内

{

string script1 = @「

var latestRelease = Array.from(document.querySelectorAll(『.eXMmo3JR』)).find(el => el.textContent.trim() === 『半年内』);

if (latestRelease) {

latestRelease.click();

} else {

console.log(『Element not found』);

}

「;

chromeBrowser.EvaluateScriptAsync(script1);

}
————————————————
版权声明:本文为CSDN博主「Sha_laa」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Sha_laa/article/details/159542365

posted @ 2026-03-27 18:05  管理软件开发分享  阅读(6)  评论(0)    收藏  举报