对某一个学校Acm平台做了一个小小的测试,爬了下题目和正确率。
import requests
from lxml import etree
with open("sdutpro.txt","a",encoding="utf-8") as f:#写入了文件中
for i in range(28):#一共有28页
url = "https://acm.sdut.edu.cn/onlinejudge2/index.php?m=&c=Index&a=problemlist&p={}".format(i+1)
headers = {"User_Agent": "Mozilla/5.0(compatible; MSIE 5.5; Windows 10)"}
data = requests.get(url, headers=headers).text
s = etree.HTML(data)
prolist = s.xpath('//*[@class="main"]/div/div[2]/table/tbody/tr')
for pro in prolist:
pro_name = pro.xpath('./td[2]/a/text()')[0].strip()
f.write(pro_name+"\t")
pro_rate = pro.xpath('./td[4]/text()')[0].strip()
f.write(pro_rate)
f.write("\n")