有些網站的資料並不是很直接可以抓取到,尤其是每次網頁資料屬於需要即時更新,那網站的設計者常會加上一個 timemap 好處理cache的問題,那原本要取得的資料網址就可能變成一串又長又臭的亂碼,如此一來要從固定網址去追蹤動態網址舊常常會是不斷的解析。還好python裡有個好用的模組pyquery它的使用方法就跟jquery一樣方便。
首先抓取主頁取得動態網址,得先點選後才能跳入資料頁:
from pyquery import PyQuery as pq
import urllib2,sys,os
d = pq(url='https://www.jpmrich.com.tw/wps/portal')
p = d("a#fundmorelink")
word = 'https://www.jpmrich.com.tw' + p.attr("href")
很輕鬆的就抓到他的路徑網址,並將其放到word裡,而這個路徑裡正是我們需要的資料,如圖:
那就繼續用pyquery來抓取每個基金的淨值。
d = pq(url=word)
s = ""
p = d("tr.table_level_4, tr.table_level_5")
s = p.text().split(' ')
FILE = codecs.open('jpm03.html','w','utf-8')
for i in range(len(s)):
if i%16 == 0:
FILE.write(s[i] + ',' + s[i+1] + '\n')
FILE.close()
結果如下圖,再來就隨便你是否要存資料庫或要做啥囉。
沒有留言:
張貼留言