LeetCode Helper简介:实现对LeetCode中文站的个人数据和提交源码进行爬取,将源码保存至本地,一键更新源码至github仓库,并且根据数据更新源码仓库的readme.md。
本章进展:
- 实现对Leetcode-cn的模拟登陆,并获取题目状态。
- 将个人做题情况保存到本地csv表格。
爬虫模拟登陆
该部分实现的需求是:建立一个长期的会话,根据用户名和密码,进行模拟登陆,登陆成功后返回登陆成功的会话。
建立会话
这里需要用到requests库建立一个会话。
import requests
session = requests.Session()
发送post请求
登陆网址
# 源站
leetcode_url = 'https://leetcode-cn.com/'
# 登陆地址
sign_in_url = leetcode_url + 'accounts/login/'
请求头参数设置
这里我们需要模拟浏览器登陆,所以请求头中的user-agent需要设置成浏览器的
user_agent = r"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
其次,我们需要建立一个长期的会话,需要保持登陆的状态,目标站点为登陆站。
headers = {
'User-Agent': user_agent, 'Connection': 'keep-alive', 'Referer': sign_in_url}
请求数据
这里我们要发送的数据就是我们的登陆信息,即账号和密码。
login_data = {
'login': email, 'password'