利用pyquery抓資料

有些網站的資料並不是很直接可以抓取到,尤其是每次網頁資料屬於需要即時更新,那網站的設計者常會加上一個 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()
結果如下圖,再來就隨便你是否要存資料庫或要做啥囉。

基金淨值
基金淨值

沒有留言:

張貼留言