1. 程式人生 > >Python爬校OJ排名名單

Python爬校OJ排名名單

感覺真是應了那句學需要用的東西

然後就能用了

沒有自動登入爬 就是把網頁程式碼儲存成txt爬的

雞肋不要緊 能用就成

import requests
import pandas
from pandas import Series
from pyquery import PyQuery as pq

def test():
    pandas.set_option('display.max_rows', None)#顯示所有行
    with open('C:/Users/79823/Desktop/sta.txt', 'r', encoding='UTF-8') as f:
        a=pq(f.read())
        i=0
        data={}
        frame=pandas.DataFrame(data=data, columns=('name', 'sno', 'spe'))
        for i in range(1, 200):#上限
            b=pq(a('tr').eq(i))
            if b != '':   
                sno=b.find('td').eq(3).text()
                if len(sno)==10:
                    if sno[3]=='8' or (sno[3]=='7' and sno[4]!='1' and sno[5] != '1'):#篩選合格的人(18級或預科)
                        name=b.find('td').eq(2).text()
                        spe=b.find('td').eq(5).text()
                        data={'name':[name], 'sno':[sno], 'spe':[spe]}
                        frame = frame.append(pandas.DataFrame(data=data, columns=('name', 'sno', 'spe')), ignore_index=True)
                    
    print(frame)
                        
test()