https://github.com/kamenriderkuuga/leetcode-crawler-demo-java
LeetCode💪中文站的爬虫🐞,使用Java实现
https://github.com/kamenriderkuuga/leetcode-crawler-demo-java
clawler java leetcode
Last synced: about 2 months ago
JSON representation
LeetCode💪中文站的爬虫🐞,使用Java实现
- Host: GitHub
- URL: https://github.com/kamenriderkuuga/leetcode-crawler-demo-java
- Owner: KamenRiderKuuga
- License: mit
- Created: 2020-11-29T17:18:10.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2020-12-30T14:38:28.000Z (almost 5 years ago)
- Last Synced: 2025-07-29T22:27:13.513Z (2 months ago)
- Topics: clawler, java, leetcode
- Language: Java
- Homepage:
- Size: 19.5 KB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LeetCode-Crawler-JavaDemo🐞
LeetCode中文站爬虫的Java实现,持续更新+整理代码## 目前完成功能:
1. 登录并获取Cookie
2. 获取所有题目列表
3. 获取指定题目内容
4. 提交题解至LeetCode,并返回`submissionId`
5. 使用`submissionid`查询题解## 使用示例:
> LeetCodeHelper是一个帮助类,帮助使用者用于和LeetCode交互,具体的使用方法可以看test中的使用方法
### 实例化帮助类LeetCodeHelper⚙
> 三个参数分别用来用于发起http请求,配置CookieSpec,保存Cookie,没有直接内嵌在帮助类里是为了更方便让使用者使用自己的httpClient实例
```java
// 用准备好的参数实例化LeetCodeHelper
LeetCodeHelper leetCodeHelper = new LeetCodeHelper(httpClient, requestConfig, httpCookieStore);
```### 获取所有题目列表📚(无需登录)
> 这里获取到的是一个Json字符串,可以自行处理
```java
// 获取所有题目列表
String questionsListJsonString = leetCodeHelper.getQuestionsList();
```### 获取指定题目详情🔍(无需登录)
> 这里获取到的是一个Json字符串,可以自行处理
```java
String questionSlug = "two-sum";
// 获取题目详情
String questionContentJsonString = leetCodeHelper.getQuestionDetailBySlug(questionSlug);
```### 登录到LeetCode✔
> 这里的账号密码直接写在`Constants`类里面了,可以自己调整账号密码配置方式,调用这个函数之后,cookieStore会自动保存Cookie信息
```java
leetCodeHelper.loginToLeetCode();
```### 提交题解并返回submissionId😊(需要登录)
> 登录过程在这个函数内部也会去调用,所以要使用这个函数不需要自行调用`loginToLeetCode()`,但是要记得这里需要配置了可用的账号密码才能进行。返回的submissionId是LeetCode的提交流水号,后续用这个流水号就可以查到提交结果了
```java
// 构建题解
AnswerParam answerParam = new AnswerParam();
answerParam.setAnswer("print(\"hello, world!\")");
answerParam.setLanguage(LanguageEnums.PYTHON3.getCode());
leetCodeHelper.loginToLeetCode();
// 提交题解并返回提交流水号
String submissionId = leetCodeHelper.submitAnswerToLeetCode(answerParam, questionSlug, questionId, true);
```### 使用submissionId获取判题结果🆗(需要登录)
> 登录过程在这个函数内部也会去调用,所以要使用这个函数不需要自行调用`loginToLeetCode()`,但是要记得这里需要配置了可用的账号密码才能进行。返回的判题结果是一个Json字符串,可以自行处理
```java
// 使用流水获取判题结果
String judgementResultJsonString = "";
judgementResultJsonString = leetCodeHelper.queryJudgementResult(submissionId, questionSlug).getBody();
```## To-Do List
1. 获取题目模板