场景:需要在一网站中批量评论留言。

分析接口:

列表接口获取idList,返回的是json数据直接用FastJson转就可以,如果返回的是HTML片段,则需要使用Jsoup进行提取,值得一学,常用于爬虫;

评论接口使用的是get请求,评论内容在url中,中文需进行编码。

获取idList接口:http://yyy.xxx.cn/?r=matchV4/search/GetJson&page=2&pageSize=10&type=weike&typeID=51&grade=0&subject=0&areaID=0&order=quality
每页数量:pageSize=10
第几页:page=
type: XX course
typeID:51 52
作品类型:XX 专题
grade: 0 4 1 2 3 5 6
学段:全部 幼儿园 小学 初中 高中 职校 高校
subject:0 1 2 3 11 12 13 15 14 4 7 8 6 16 5 10
学科: 全部 语文 数学 英语 物理 化学 生物 历史 地理 政治(思想品德) 音乐 美术 体育与健康 信息技术 科学 其他
areaID:0 1-31
地区:全部 北京 上海 天津 重庆 黑龙江 吉林 辽宁 山东 山西 陕西 河北 河南 湖北 湖南 海南 江苏 江西 广东 广西 云南 贵州 四川 内蒙古 宁夏 甘肃 青海 西藏 新疆 安徽 浙江 福建
order:quality vote commentnum date
排序: 综合排序 | 投票数量 | 评论数量 | 上传时间 评论接口:http://xxx.yyy.cn/?r=matchV4/play/addComment&comment="+encodedComment+"&content_id="+data.getId()

使用到的相关组件:Hutoll工具、log4j、fastjson

Http请求类用于构建Http请求并同步获取结果,注意设置登录后的cookie,评论内容通过url传参需要将评论内容url编码。

HttpRequest.get("http://xxx.yyy.cn/?r=matchV4/play/addComment&comment="+encodedComment+"&content_id="+data.getId())
.cookie(cookie).execute();
//Hutool计时器工具
TimeInterval timer = DateUtil.timer();
log.info("NO:{}--课程ID:{}>>>>评论成功>>>>耗时{}毫秒",++count,data.getId(),String.valueOf(timer.intervalMs()));

Log日志

WARN - 当前时间:2022-08-27 21:39:57,获取courseID中,
请求参数:http://xxx.yyy.cn/?r=matchV4/search/GetJson&pageSize=10&type=weike
&typeID=51&grade=0&subject=0&areaID=0&order=quality&page=
WARN - 获取ID:100个,耗时2秒
WARN - 启动评论,内容:xxxxxx
INFO - NO:1--课程ID:142879>>>>评论成功>>>>耗时140毫秒
INFO - NO:2--课程ID:142871>>>>评论成功>>>>耗时131毫秒
INFO - NO:3--课程ID:142870>>>>评论成功>>>>耗时131毫秒
INFO - NO:4--课程ID:142869>>>>评论成功>>>>耗时130毫秒
INFO - NO:5--课程ID:142868>>>>评论成功>>>>耗时128毫秒
INFO - NO:6--课程ID:142866>>>>评论成功>>>>耗时95毫秒
INFO - NO:7--课程ID:142864>>>>评论成功>>>>耗时90毫秒
INFO - NO:8--课程ID:142862>>>>评论成功>>>>耗时90毫秒
INFO - NO:9--课程ID:142857>>>>评论成功>>>>耗时90毫秒
INFO - NO:10--课程ID:142847>>>>评论成功>>>>耗时100毫秒
INFO - NO:11--课程ID:142843>>>>评论成功>>>>耗时90毫秒
INFO - NO:12--课程ID:142840>>>>评论成功>>>>耗时92毫秒
INFO - NO:13--课程ID:142837>>>>评论成功>>>>耗时88毫秒
INFO - NO:14--课程ID:142828>>>>评论成功>>>>耗时90毫秒
INFO - NO:15--课程ID:142817>>>>评论成功>>>>耗时90毫秒
INFO - NO:16--课程ID:142808>>>>评论成功>>>>耗时105毫秒
INFO - NO:17--课程ID:142807>>>>评论成功>>>>耗时90毫秒
INFO - NO:18--课程ID:142798>>>>评论成功>>>>耗时90毫秒
INFO - NO:19--课程ID:142792>>>>评论成功>>>>耗时105毫秒
INFO - NO:20--课程ID:142791>>>>评论成功>>>>耗时96毫秒
INFO - NO:21--课程ID:142787>>>>评论成功>>>>耗时89毫秒
INFO - NO:22--课程ID:142783>>>>评论成功>>>>耗时91毫秒
INFO - NO:23--课程ID:142773>>>>评论成功>>>>耗时89毫秒
INFO - NO:24--课程ID:142763>>>>评论成功>>>>耗时85毫秒
INFO - NO:25--课程ID:142758>>>>评论成功>>>>耗时97毫秒
INFO - NO:26--课程ID:142757>>>>评论成功>>>>耗时90毫秒
INFO - NO:27--课程ID:142755>>>>评论成功>>>>耗时93毫秒
INFO - NO:28--课程ID:142754>>>>评论成功>>>>耗时90毫秒
INFO - NO:29--课程ID:142752>>>>评论成功>>>>耗时80毫秒
INFO - NO:30--课程ID:142751>>>>评论成功>>>>耗时92毫秒
INFO - NO:31--课程ID:142746>>>>评论成功>>>>耗时97毫秒
INFO - NO:32--课程ID:142744>>>>评论成功>>>>耗时90毫秒
INFO - NO:33--课程ID:142743>>>>评论成功>>>>耗时90毫秒
INFO - NO:34--课程ID:142742>>>>评论成功>>>>耗时80毫秒
INFO - NO:35--课程ID:142739>>>>评论成功>>>>耗时97毫秒
INFO - NO:36--课程ID:142738>>>>评论成功>>>>耗时93毫秒
INFO - NO:37--课程ID:142737>>>>评论成功>>>>耗时90毫秒
INFO - NO:38--课程ID:142736>>>>评论成功>>>>耗时89毫秒
INFO - NO:39--课程ID:142732>>>>评论成功>>>>耗时91毫秒
INFO - NO:40--课程ID:142729>>>>评论成功>>>>耗时90毫秒
INFO - NO:41--课程ID:142727>>>>评论成功>>>>耗时90毫秒
INFO - NO:42--课程ID:142724>>>>评论成功>>>>耗时94毫秒
INFO - NO:43--课程ID:142715>>>>评论成功>>>>耗时86毫秒
INFO - NO:44--课程ID:142714>>>>评论成功>>>>耗时100毫秒
INFO - NO:45--课程ID:142710>>>>评论成功>>>>耗时85毫秒
INFO - NO:46--课程ID:142709>>>>评论成功>>>>耗时90毫秒
INFO - NO:47--课程ID:142702>>>>评论成功>>>>耗时100毫秒
INFO - NO:48--课程ID:142700>>>>评论成功>>>>耗时90毫秒
INFO - NO:49--课程ID:142698>>>>评论成功>>>>耗时90毫秒
INFO - NO:50--课程ID:142691>>>>评论成功>>>>耗时100毫秒
INFO - NO:51--课程ID:142690>>>>评论成功>>>>耗时90毫秒
INFO - NO:52--课程ID:142688>>>>评论成功>>>>耗时100毫秒
INFO - NO:53--课程ID:142687>>>>评论成功>>>>耗时90毫秒
INFO - NO:54--课程ID:142683>>>>评论成功>>>>耗时100毫秒
INFO - NO:55--课程ID:142675>>>>评论成功>>>>耗时90毫秒
INFO - NO:56--课程ID:142670>>>>评论成功>>>>耗时90毫秒
INFO - NO:57--课程ID:142668>>>>评论成功>>>>耗时90毫秒
INFO - NO:58--课程ID:142667>>>>评论成功>>>>耗时90毫秒
INFO - NO:59--课程ID:142666>>>>评论成功>>>>耗时90毫秒
INFO - NO:60--课程ID:142663>>>>评论成功>>>>耗时92毫秒
INFO - NO:61--课程ID:142658>>>>评论成功>>>>耗时88毫秒
INFO - NO:62--课程ID:142657>>>>评论成功>>>>耗时90毫秒
INFO - NO:63--课程ID:142654>>>>评论成功>>>>耗时95毫秒
INFO - NO:64--课程ID:142646>>>>评论成功>>>>耗时85毫秒
INFO - NO:65--课程ID:142643>>>>评论成功>>>>耗时92毫秒
INFO - NO:66--课程ID:142642>>>>评论成功>>>>耗时88毫秒
INFO - NO:67--课程ID:142638>>>>评论成功>>>>耗时90毫秒
INFO - NO:68--课程ID:142631>>>>评论成功>>>>耗时100毫秒
INFO - NO:69--课程ID:142630>>>>评论成功>>>>耗时92毫秒
INFO - NO:70--课程ID:142622>>>>评论成功>>>>耗时93毫秒
INFO - NO:71--课程ID:142621>>>>评论成功>>>>耗时89毫秒
INFO - NO:72--课程ID:142620>>>>评论成功>>>>耗时116毫秒
INFO - NO:73--课程ID:142614>>>>评论成功>>>>耗时93毫秒
INFO - NO:74--课程ID:142608>>>>评论成功>>>>耗时87毫秒
INFO - NO:75--课程ID:142606>>>>评论成功>>>>耗时91毫秒
INFO - NO:76--课程ID:142605>>>>评论成功>>>>耗时89毫秒
INFO - NO:77--课程ID:142600>>>>评论成功>>>>耗时90毫秒
INFO - NO:78--课程ID:142599>>>>评论成功>>>>耗时81毫秒
INFO - NO:79--课程ID:142598>>>>评论成功>>>>耗时98毫秒
INFO - NO:80--课程ID:142592>>>>评论成功>>>>耗时82毫秒
INFO - NO:81--课程ID:142591>>>>评论成功>>>>耗时88毫秒
INFO - NO:82--课程ID:142589>>>>评论成功>>>>耗时80毫秒
INFO - NO:83--课程ID:142586>>>>评论成功>>>>耗时90毫秒
INFO - NO:84--课程ID:142583>>>>评论成功>>>>耗时97毫秒
INFO - NO:85--课程ID:142581>>>>评论成功>>>>耗时88毫秒
INFO - NO:86--课程ID:142574>>>>评论成功>>>>耗时82毫秒
INFO - NO:87--课程ID:142572>>>>评论成功>>>>耗时97毫秒
INFO - NO:88--课程ID:142570>>>>评论成功>>>>耗时83毫秒
INFO - NO:89--课程ID:142566>>>>评论成功>>>>耗时92毫秒
INFO - NO:90--课程ID:142564>>>>评论成功>>>>耗时88毫秒
INFO - NO:91--课程ID:142561>>>>评论成功>>>>耗时120毫秒
INFO - NO:92--课程ID:142559>>>>评论成功>>>>耗时86毫秒
INFO - NO:93--课程ID:142558>>>>评论成功>>>>耗时84毫秒
INFO - NO:94--课程ID:142547>>>>评论成功>>>>耗时90毫秒
INFO - NO:95--课程ID:142542>>>>评论成功>>>>耗时90毫秒
INFO - NO:96--课程ID:142539>>>>评论成功>>>>耗时90毫秒
INFO - NO:97--课程ID:142535>>>>评论成功>>>>耗时80毫秒
INFO - NO:98--课程ID:142530>>>>评论成功>>>>耗时95毫秒
INFO - NO:99--课程ID:142529>>>>评论成功>>>>耗时85毫秒
INFO - NO:100--课程ID:142527>>>>评论成功>>>>耗时90毫秒
WARN - 时间:2022-08-27 21:40:10,评论结束,共100条

使用Java刷评论为平台引流的经历的更多相关文章

  1. 牛客网Java刷题知识点之字符流缓冲区、BufferedWriter、BufferedReader、BufferedReader-readLine方法原理、自定义MyBufferedReader-read方法、自定义MyBufferedReader-readLine方法

    不多说,直接上干货! 把提高效率的动作,封装成一个对象.即把缓冲区封装成一个对象. 就是在一个类里封装一个数组,能对流锁操作数据进行缓存. 什么是字符流缓冲区? 善于使用字符流缓冲区,减轻负担,提高下 ...

  2. 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet、HashMap 、Hashtable、TreeMap、LinkedHashMap、ConcurrentHashMap 、WeakHashMap

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  3. 牛客网Java刷题知识点之UDP协议是否支持HTTP和HTTPS协议?为什么?TCP协议支持吗?

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  4. 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  5. QQ兴趣部落 大批量引流实战技巧

    兴趣部落,犹如pc端贴吧,除去盔甲,几乎大同小异. 在文章<QQ运动,新楛的马桶还在香,营销人不应摒弃>中,阿力推推对稍微僻静的平台做过简述,和QQ运动一样,兴趣部落稍显“僻静”,执行到位 ...

  6. Java生鲜电商平台-生鲜电商中商品类目、属性、品牌、单位架构设计与实战

    Java生鲜电商平台-生鲜电商中商品类目.属性.品牌.单位架构设计与实战 说明:Java生鲜电商平台-生鲜电商中商品类目.属性.品牌.单位架构设计与实战经验分享 凡是涉及到购物,必然是建立在商品的基础 ...

  7. Java生鲜电商平台-高可用微服务系统如何设计?

    Java生鲜电商平台-高可用微服务系统如何设计? 说明:Java生鲜电商平台高可用架构往往有以下的要求: 高可用.这类的系统往往需要保持一定的 SLA,7*24 时不间断运行不代表完全不挂,而是有一定 ...

  8. Java生鲜电商平台-电商数据运营统计与分析

    Java生鲜电商平台-电商数据运营统计与分析 今天分享将会分为以下几个方面来阐述: 1. 作为运营我们需要统计与分析的几个核心数据是什么? 2. 核心数据对业务的指导价值在哪里呢? 3. 作为产品PM ...

  9. Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析

    Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才 ...

  10. Java生鲜电商平台-电商会员体系系统的架构设计与源码解析

    Java生鲜电商平台-电商会员体系系统的架构设计与源码解析 说明:Java生鲜电商平台中会员体系作为电商平台的基础设施,重要性不容忽视.我去年整理过生鲜电商中的会员系统,但是比较粗,现在做一个最好的整 ...

随机推荐

  1. fastdfs-zyc管理FastDFS的web界面

    俩压缩包根据大小重命名以下,按图片所示 把1_fastdfs-zyc.7z重命名为fastdfs-zyc.7z.001 把2_fastdfs-zyc.7z重命名为fastdfs-zyc.7z.002 ...

  2. 1-Mysql数据库简洁命令

    1-进入mysql数据库 mysql -u root -p 2-创建数据库 mysql> CREATE DATABASE serurities_master; mysql> USE ser ...

  3. 网络安全(一)主动进攻之DNS基础和ettercap实现DNS流量劫持

    alittlemc,个人原创,个人理解和观点.若有错误.不理解请与我联系,谢谢! 介绍了DNS的解析过程. DNS劫持的思路和实践. DNS 域名 以为live.bilibili.com为例子,从后到 ...

  4. ASP.NET Core :中间件系列(三):中间件限流

    中间件 微软官网定义: 中间件 中间件意思就是处理请求和响应的软件: 1.选择是否将请求传递到管道中的下一个组件. 2.可在管道中的下一个组件前后执行工作. 对中间件类 必须 包括以下 具有类型为 R ...

  5. 驱动开发:内核枚举DpcTimer定时器

    在笔者上一篇文章<驱动开发:内核枚举IoTimer定时器>中我们通过IoInitializeTimer这个API函数为跳板,向下扫描特征码获取到了IopTimerQueueHead也就是I ...

  6. Qt Quick 用cmake怎么玩子项目

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/o-_aGqreuQda-ZmKktvxwA 以往在公司开发众多的项目中 ...

  7. 一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)

    这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.分布式架构下,Session共享有什么方案 2.简述你对RPC.RMI的理解 3.分布式id生成方案 4.分布式锁解决 ...

  8. HTML+CSS基础知识(2)选择器的使用、盒子模型的讲解、列表的使用

    文章目录 1.CSS基础知识 2.css样式 2.1.代码: 2.2 测试结果 3.CSS的语法 3.1 代码 4.块元素和行内元素 4.1 代码 4.2 测试结果 5.常用的选择器 5.1 代码块 ...

  9. TCP 序列号和确认号是如何变化的?

    大家好,我是小林. 在网站上回答了很多人的问题,我发现很多人对 TCP 序列号和确认号的变化都是懵懵懂懂的,只知道三次握手和四次挥手过程中,ACK 报文中确认号要 +1,然后数据传输中 TCP 序列号 ...

  10. 基于SqlSugar的开发框架循序渐进介绍(20)-- 在基于UniApp+Vue的移动端实现多条件查询的处理

    在做一些常规应用的时候,我们往往需要确定条件的内容,以便在后台进行区分的进行精确查询,在移动端,由于受限于屏幕界面的情况,一般会对多个指定的条件进行模糊的搜索,而这个搜索的处理,也是和前者强类型的条件 ...