[+] CPU Benchmark Crawler
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import csv
|
||||
from dataclasses import dataclass
|
||||
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
|
||||
@dataclass()
|
||||
class CPU:
|
||||
id: str
|
||||
name: str
|
||||
bench: int
|
||||
|
||||
|
||||
@dataclass()
|
||||
class E5(CPU):
|
||||
val: int
|
||||
ver: int
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
html = requests.get('https://www.cpubenchmark.net/cpu_list.php').text
|
||||
soup = BeautifulSoup(html, 'html.parser')
|
||||
|
||||
cpus: list[CPU] = []
|
||||
table = soup.find('tbody')
|
||||
for tr in table.find_all('tr'):
|
||||
td = tr.find_all('td')
|
||||
cpus.append(CPU(tr.attrs['id'], td[0].text, int(td[1].text.replace(',', ''))))
|
||||
|
||||
# Filter E5
|
||||
e5 = [E5(c.id, c.name, c.bench, int(c.name[14:18]),
|
||||
(1 if c.name.find(' v') == -1 else int(c.name[c.name.find(' v') + 2])))
|
||||
for c in cpus if 'Xeon E5-' in c.name]
|
||||
print(e5)
|
||||
|
||||
# To CSV
|
||||
with open('cpu_bench.csv', 'w', newline='') as csvfile:
|
||||
writer = csv.writer(csvfile)
|
||||
writer.writerow(['ID', 'Name', 'Bench', 'Num', 'Version'])
|
||||
writer.writerows([(c.id, c.name, c.bench, c.val, c.ver) for c in e5])
|
||||
Reference in New Issue
Block a user