Parcourir la source

Improve parsing professors, add print function

JoostSijm il y a 5 ans
Parent
commit
480989bce3
2 fichiers modifiés avec 19 ajouts et 7 suppressions
  1. 10 1
      app/__main__.py
  2. 9 6
      app/api.py

+ 10 - 1
app/__main__.py

@@ -13,9 +13,18 @@ def job_update_department(state_id, department_type):
     """Update department professors"""
     # last_professor = get_last_professor(state_id, department_type)
     professors = get_professors(state_id, department_type, None)
-    print(professors)
+    print_professors(professors)
     # save_professors(state_id, department_type, professors)
 
+def print_professors(professors):
+    """Print professors"""
+    for professor in professors:
+        print('{:30} {:2} {:>25}'.format(
+            professor['name'],
+            professor['points'],
+            professor['date'].strftime('%d %B %Y %H:%M'),
+        ))
+
 
 if __name__ == '__main__':
     # jobs

+ 9 - 6
app/api.py

@@ -1,6 +1,7 @@
 """API module"""
 
-import re 
+import re
+from datetime import datetime, timedelta
 
 import requests
 from bs4 import BeautifulSoup
@@ -43,19 +44,21 @@ def parse_department(html):
     """Parse html return professors"""
     soup = BeautifulSoup(html, 'html.parser')
     professors_tree = soup.find_all(class_='list_link')
-    print(professors_tree)
     professors = []
+    today = datetime.strftime(datetime.now(), '%-d %B %Y')
+    yesterday = datetime.strftime(datetime.now() - timedelta(1), '%-d %B %Y')
     for professor_tree in professors_tree:
-        print(professor_tree)
         columns = professor_tree.find_all('td')
+        date = columns[3].string
+        date = date.replace('Today ', today)
+        date = date.replace('Yesterday ', yesterday)
+        datetime.strptime('Jun 1 2005  1:33PM', '%b %d %Y %I:%M%p')
         professors.append(
             {
                 'id': int(professor_tree['user']),
                 'name': re.sub(r'\s\(.*$', '', columns[1].string),
                 'points': int(re.sub(r'^.*\(\+|\)$', '', columns[1].string)),
-                'date': columns[3].string,
+                'date': datetime.strptime(date, '%d %B %Y %H:%M'),
             }
         )
-    print(professors)
-    exit()
     return professors