Created
June 7, 2016 10:55
-
-
Save taznica/356f14e770ea86cf8f5b54e83ff0e7ef to your computer and use it in GitHub Desktop.
東北大のHPから成績取ってくるスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
#coding:utf-8 | |
from selenium import webdriver | |
from selenium.webdriver.common.by import By | |
from selenium.webdriver.support.ui import WebDriverWait | |
import os | |
import time | |
URL = "https://www.srp.tohoku.ac.jp/" | |
USER_ID = "***" | |
PASSWORD = "***" | |
MATRIX = ["***.gif", "***.gif", "***.gif"] | |
driver = webdriver.PhantomJS() | |
#driver = webdriver.Firefox() | |
driver.get(URL) | |
user_id_elem = driver.find_element_by_name("twuser") | |
password_id_elem = driver.find_element_by_name("twpassword") | |
user_id_elem.send_keys(USER_ID) | |
password_id_elem.send_keys(PASSWORD) | |
password_id_elem.submit() | |
elems = driver.find_elements(By.CLASS_NAME, "input_imgdiv_class") | |
no = [-1] * len(MATRIX) | |
for i, elem in enumerate(elems): | |
print elem.value_of_css_property("background-image") | |
for j, mat in enumerate(MATRIX): | |
if mat == os.path.basename(elem.value_of_css_property("background-image")[4:-1]): | |
no[j] = i | |
for i in no: | |
elems[i].click() | |
driver.find_element_by_xpath('//*[@id="btnLogin"]').click() | |
WebDriverWait(driver, 10).until(lambda driver : driver.title == u"東北大学ポータルサイト") | |
driver.get("https://www.srp.tohoku.ac.jp/sa/top.do") | |
driver.find_element_by_name("userId").send_keys(USER_ID) | |
driver.find_element_by_name("password").send_keys(PASSWORD) | |
driver.find_element_by_name("password").submit() | |
driver.get("https://www.srp.tohoku.ac.jp/sa/wssrlstr.do?clearAccessData=true&kjnmnNo=29") | |
for eelem in driver.find_elements_by_class_name("column_odd") + driver.find_elements_by_class_name("column_even"): | |
#CSSセレクタなんて書けなかった | |
info = eelem.find_elements_by_tag_name("td") | |
if len(info) < 6:continue | |
name = info[0].text.strip() | |
grade = info[5].text.strip() | |
print name,grade | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment