需要引入Jsoup依赖:

		<dependency>
<!-- jsoup HTML parser library @ https://jsoup.org/ -->
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>

Jsoup相关依赖:https://jsoup.org/

其他需要的是 FileHelper 类,参见:https://www.cnblogs.com/zifeiy/p/9224569.html

(不过我们这边可能需要将"UTF-8"改成"GBK" ~)

然后实现的类如下:

package com.zifeiy.cf_data_get.handle;

import java.io.File;
import java.io.IOException; import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements; import com.zifeiy.cf_data_get.assist.FileHelper; public class SubmissionInfoGet { public void getSubmission(int contestId, int submissionId) throws IOException {
String urlString = "http://codeforces.com/contest/" + contestId + "/submission/" + submissionId;
Document doc = Jsoup.connect(urlString).get();
System.out.println("title = " + doc.title()); String dirString = "D:/codeforces/" + submissionId;
File dir = new File(dirString);
if (dir.exists() == false) dir.mkdirs();
File dataDir = new File(dirString + File.separator + "data");
if (dataDir.exists() == false) dataDir.mkdirs(); // 代码
String codeString = doc.getElementById("program-source-text").text();
File codeFile = new File(dirString + File.separator + "std.cpp");
FileHelper.writeFile(codeFile, codeString);
Elements inputElements = doc.getElementsByClass("file input-view");
Elements outputElements = doc.getElementsByClass("file answer-view");
int sz = inputElements.size();
int cnt = 0;
for (int i = 0; i < sz; i ++) {
String inputTextString = inputElements.get(i).getElementsByClass("text").get(0).text();
String outputTextString = outputElements.get(i).getElementsByClass("text").get(0).text();
if (inputTextString.endsWith("...") == false) {
// System.out.println("[input]\n" + inputTextString + "\n[output]\n" + outputTextString + "\n[end]");
cnt ++;
File inputFile = new File(dirString + File.separator + "data" + File.separator + cnt + ".in");
FileHelper.writeFile(inputFile, inputTextString);
File outputFile = new File(dirString + File.separator + "data" + File.separator + cnt + ".out");
FileHelper.writeFile(outputFile, outputTextString);
}
} } // main for test
public static void main(String[] args) throws IOException {
new SubmissionInfoGet().getSubmission(1169, 54847813);
} }

其中,contestIdsubmissionId 分别对应 比赛Id 和 提交Id 。

最新文章

  1. java 多线程 1 线程 进程
  2. xcode 一般插件
  3. 剑指Offer:面试题31——连续子数组的最大和(java实现)
  4. 关于SilverLight
  5. 这是啥-Cython语言简单介绍
  6. NGUI 渲染流程深入研究 (UIDrawCall UIGeometry UIPanel UIWidget)
  7. 支持阻塞操作和轮询操作的globalfifo设备驱动代码分析以及测试代码
  8. [Codeforces Round #192 (Div. 2)] D. Biridian Forest
  9. java--多线程之前台幕后
  10. 第一百三十四节,JavaScript,封装库--遮罩锁屏
  11. Effective C++ ——继承与面向对象设计
  12. obj-c编程01:第一个类和对象的范例
  13. eShopOnContainers 看微服务③:Identity Service
  14. [leetcode]Unique Paths @ Python
  15. Spring Security和JWT实现登录授权认证
  16. Python机器学习——线性模型
  17. 使用工厂方法配置bean的两种方式
  18. pyhon 列表的增删改查
  19. PCIe调试心得_DMA part2
  20. SQL点点滴滴_SQL分页查询

热门文章

  1. CyclicBarrier 使用详解
  2. 排序接口与抽象类(java)
  3. evpp tcp server服务端
  4. 最全 webpak4.0 打包性能优化清单
  5. git上传者姓名修改
  6. 项目Alpha冲刺(团队)-第九天冲刺
  7. 使用vault pki 为nginx 生成tls 证书文件
  8. canvas做动画
  9. Web前端鼠标悬停实现显示与隐藏效果
  10. 逆向对抗技术之ring3解除文件句柄,删除文件