# LeetCode-Spider
Python实现的LeetCode爬虫。爬取LeetCode题目描述和提交的代码。
## 特点
- 支持爬取题目列表,保存为本地CSV/Excel文件。
- 支持爬取题目描述,保存为本地HTML文件。
- 支持爬取用户提交的代码,保存为如_.py、_.java、\*.cpp等源码。
- 高速并发下载题目描述和提交的代码。
- 支持增量更新,当本地有缺损或LeetCode有新内容(题目/提交的代码)时,以增量形式更新。
## 使用
参考example.py。
### 克隆或下载本仓库
使用`git clone`或直接下载本仓库代码,并切换工作目录到本项目根目录
### 安装依赖
本项目需要用到第三方库`lxml`和`openpyxl`(如果需要保存为Excel),可通过如下`pip`命令安装:
```bash
pip3 install lxml
pip3 install openpyxl
```
### 获取问题列表(必须)
```python
from Extractor import Extractor
extractor = Extractor()
# 获取问题列表(保存在数据库leetcode.db中,若希望获取问题状态(是否ac),需首先登录)
# extractor.login('foo@bar.com', '123456')
extractor.update_problem_list()
```
获取得到的数据保存在leetcode.db数据库中。
### 导出问题列表
可将问题列表导出为CSV/Excel格式文件,参考下面的截图。
```python
# 导出问题列表为中文CSV文件
extractor.save_problem_list('problems.csv')
# 导出问题列表为英文Excel文件
extractor.save_problem_list('problems.xlsx', 'excel', 'English')
```
![CSV][csv]
![Excel][excel]
### 获取问题描述HTML文件
**需先获取问题列表**
```python
# 获取问题描述HTML文件(保存在descriptions文件夹下,需要先获取问题列表)
extractor.update_descriptions()
```
根据问题列表增量多线程并发下载新的问题描述,并将HTML文件保存到descriptions文件夹下。文件夹结构为:
```
descriptions
001. Two Sum.html
002. Add Two Numbers.html
003. Longest Substring Without Repeating Characters.html
...
```
### 获取提交的代码
**需先获取问题列表**
```python
# 获取提交的代码(保存在submissions文件夹下,需要先获取问题列,并登录)
extractor.login('foo@bar.com', '123456')
extractor.update_submissions()
```
这里需要先输入用户名和密码登录,然后才能获取到此用户提交的代码。
根据问题列表增量多线程并发下载新的提交代码,并将其保存到submissions文件夹下。文件夹结构为:
```
submissions
24152714
24153189
24165875
...
```
### 导出提交的代码
**需先获取提交的代码**
```python
# 导出提交的代码(保存在out_submissions文件夹下,需先获取提交的代码)
extractor.output_submissions()
```
导出之前保存的文件为格式化文件结构(默认仅导出每种语言的最新提交版本),保存到out_submissions文件夹下。文件夹结构为:
```
out_submissions
001. Two Sum
C++
Solution.cpp
Java
Solution.java
Python
Solution
002. Add Two Numbers
C++
Solution.cpp
Java
Solution.java
Python
Solution
...
```
## 第三方依赖
- [lxml](http://lxml.de/)
- [openpyxl](https://openpyxl.readthedocs.io/)
[csv]: screenshot/csv.png
[excel]: screenshot/excel.png
免责声明:
1.本资源仅供学习和交流使用,不保证其准确性、完整性、及时性或适用性。
2.本资源仅包含一般信息,不构成专业建议。在使用本资源时,请务必自行研究并谨慎决策。
3.我已尽力确保本资源的正确性和合法性,但不对其准确性、完整性和及时性做出保证。
4.本资源不应用于商业用途。
5.在使用本资源的过程中,用户应自行承担所有风险和责任,并遵守相关法律法规。
6.对于因使用本资源而产生的任何损失或损害,我概不负责。
请确保在使用本资源时仔细阅读并遵守以上免责声明。如果您有任何疑问或需要进一步帮助,请联系我。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Python实现的LeetCode爬虫爬取LeetCode题目描述和提交的代码.zip ## 特点 - 支持爬取题目列表,保存为本地CSV/Excel文件。 - 支持爬取题目描述,保存为本地HTML文件。 - 支持爬取用户提交的代码,保存为如_.py、_.java、\*.cpp等源码。 - 高速并发下载题目描述和提交的代码。 - 支持增量更新,当本地有缺损或LeetCode有新内容(题目/提交的代码)时,以增量形式更新。 ## 使用 参考example.py。
资源推荐
资源详情
资源评论
收起资源包目录
Python实现的LeetCode爬虫。爬取LeetCode题目描述和提交的代码。.zip (12个子文件)
leetcode-spider-master
screenshot
csv.png 101KB
excel.png 81KB
templates
duplicate.html 707B
DuplicateFilter.py 1KB
.idea
LeetCodeSpider.iml 458B
leetcode-spider.iml 724B
vcs.xml 180B
misc.xml 212B
modules.xml 282B
example.py 880B
README.md 4KB
Extractor.py 22KB
共 12 条
- 1
资源评论
武昌库里写JAVA
- 粉丝: 3136
- 资源: 1872
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功