ACwing居然没有通过题目统计!!!
其他oj有的,我们ACwing也必须有!!!
于是我产生了写一个通过题目统计的爬虫代码的想法
大家可以按照自己的需求修改
尝试,但是未通过也会记录(懒得改BUG了)
exe运行文件下载 百度网盘
链接: https://pan.baidu.com/s/1TFI7Uz9YLKK7dt8-7GFBHQ
提取码: mgsb
运行图片:
import re
import time
import requests
from bs4 import BeautifulSoup
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36',
'Referer':'https://www.acwing.com/problem/'
}
data={
'csrfmiddlewaretoken':'',
'username':'',
'password':'',
'remember_me':'on'
}
k=requests.session()
k.headers=headers
#获得账号密码
data['username']=input('输入您的用户名: ')
data['password']=input('输入您的密码: ')
#更新csrfmiddlewaretoken
dem=BeautifulSoup(k.get('https://www.acwing.com/').text,'html.parser')
data['csrfmiddlewaretoken']=dem.find_all('input','name'=='csrfmiddlewaretoken')[0].attrs['value']
print('csrfmiddlewaretoken:',data['csrfmiddlewaretoken'])
#向服务器发送数据并接收数据
dem=k.post('https://www.acwing.com/user/account/signin/',data=data).text
print(dem)
#分析接收的数据
if(dem == '{"error_message": "\\u5bc6\\u7801\\u9519\\u8bef"}'):
print('密码错误')
time.sleep(3)
exit(0)
elif(dem == '{"error_message": "\\u7528\\u6237\\u540d\\u4e0d\\u5b58\\u5728"}'):
print('用户名不存在')
time.sleep(3)
exit(0)
elif(dem=='{"error_message": "success"}'):
print('登录成功')
else:
print("分析数据错误")
time.sleep(3)
exit(0)
url1='https://www.acwing.com/problem/'
tot=0
out1=open('data.txt','w')
#开始搜索数据
print('开始搜索数据')
for page in range(1,10000):
#print('page:',page)
url=url1+str(page)+'/'
dem=k.get(url)
dome=BeautifulSoup(dem.text,'html.parser')
if len(dome.tbody.contents)<=1:
break
for i in dome.tbody.contents:
try:
if len(re.findall('通过',str(i.contents[1]))):
pass
#print("通过此题")
else:
continue
tot+=1
print(i.contents[5].a.string[:-20])
print('题目编号: ',i.contents[3].span.string)
print('通过率: ',i.contents[7].span.string)
print('困难程度: ',i.contents[9].string)
out1.write('题目编号: '+i.contents[3].span.string+'\n题目难度:'+i.contents[9].string+'\n\n')
except:
pass
out1.close()
print('搜索结束')
print('累计通过题目',tot,'道')
print('数据已经存储到 data.txt')
input()
666
菜鸡求问:咋用啊?
使用python,下载requests和BeautifulSoup库,运行即可
我去转成exe文件发粗来
exe下载链接已更新
谢谢
$\sum_{i=1}^{inf}666$
666
NB
后浪啊!!!