selenium 爬取某基金網站資料
阿新 • • 發佈:2019-02-07
# coding: utf-8 from selenium import webdriver import time driver = webdriver.Chrome() driver.get( 'http://fund.eastmoney.com/data/fundranking.html#tall;c0;r;szzf;pn100;ddesc;qsd20170531;qed20180531;qdii;zq;gg;gzbd;gzfs;bbzt;sfbb') i = 1 while i < 41: i = i + 1 driver.find_element_by_xpath('//label[@value={}]'.format(i)).click() time.sleep(5) trs = driver.find_elements_by_xpath('//table[@id="dbtable"]//tr') for tr in trs: ths = tr.find_elements_by_xpath('./td') with open('foundation.csv', 'a', encoding='utf-8') as f: for th in ths: f.write(th.text.replace('\n', '\r\r') + ',' if th.text else '') f.write('\n') print('儲存成功')
這個網站的基金資料是jQuery請求返回的,然後通過渲染到頁面上,請求下一頁也是ajax請求進行區域性重新整理,
但是,這個ajax返回的資料是類似於js指令碼的格式,不好直接提取,因此採用的selenium模擬點選的方式,
點選下一頁按鈕,直到沒有最後一頁,通過xpath提取頁面的資料,存入csv檔案中,方便在excle或者pandas分析。