返回列表 上一主題 發帖

[原創] python上市櫃三大法人買賣超日報資料下載

回復 21# c_c_lai
應該是因為程式本身沒有print out任何東西,可以看一下路徑下有沒有抓到檔案,或是在程式最下面加個print("test")試試看。

TOP

回復 27# clianghot546
有安裝python的話, 直接把前面日期的部份註解掉,自己給定就可以了,假設是要抓8/31的資料,就是像這樣:
  1. ##mydate = time.strftime("%Y/%m/%d")
  2. ##year = str(int(mydate[0:4])-1911)
  3. ##mydate2 = mydate.replace(mydate[0:4],year)

  4. mydate = "2016/8/31"
  5. mydate2 = "105/8/31"
複製代碼
如果是要能讓使用者輸入,可以用input。(或是用sys模組的argv[]取得cmd下的參數)

TOP

回復 30# c_c_lai
https://www.python.org/downloads/
3.x版的應該都大同小異,您再試試。

TOP

回復 34# moco5360
應該要看你的需求:看你要下載的是什麼樣的資料,做什麼樣的整理,(刪除重複資料不太懂,是指如果重複下載要把多的刪掉還是原來的資料就有重複?)
vba抓資料我不太熟,沒辦法做比較,不過python在下載資料來說,我自己用起來是覺得還滿順手的。
如果資料量不多,就用python把資料抓下來,再用excel處理,如果資料多的話,可能還是要放到資料庫裡比較好。

TOP

回復 36# c_c_lai
其實我也都只是做簡單的應用,一個簡單的例子(抓取期貨外資交易口數以做為交易策略的參考):
網址:http://www.taifex.com.tw/chinese/3/7_12_3.asp
假設目標是抓取圖中紅圈的數字:
固定的起手式大概就像這樣(bs4要另外安裝,還有一個也很好用的是lxml):
  1. import requests
  2. from bs4 import BeautifulSoup

  3. url = 'http://www.taifex.com.tw/chinese/3/7_12_3.asp'

  4. res = requests.get(url)

  5. soup = BeautifulSoup(res.text)

  6. tbl = soup.select('.table_f td')

  7. print(tbl[33].text)
複製代碼
因為使用了requests和bs4,只要簡短的幾行程式碼就可以達到我們的需求。

TOP

回復 38# c_c_lai
那個訊息不影響執行,如果不想看到警告訊息只要像L大說的指定parser就可以了。把soup那段改成
soup = BeautifulSoup(res.text, "html. parser")

TOP

本帖最後由 zyzzyva 於 2016-9-7 21:21 編輯

回復 41# c_c_lai
3714是今天外資的期貨多空交易淨口數,就是圖裡紅圈的地方。一般我是會直接寫到csv檔裡,這樣ts或mc就可以直接讀取。

如果要顯示抓取回來的完整網頁,只需要
  1. import requests

  2. url = 'http://www.taifex.com.tw/chinese/3/7_12_3.asp'

  3. res = requests.get(url)

  4. print(res.text)
複製代碼
BeautifulSoup那邊只是在做html碼的剖析,方便我們找到要的資料。

TOP

回復 46# c_c_lai
不太確定您想達到什麼樣的效果,如果只是要把所有的資料列出來可以用for迴圈,把print那邊改一下:
  1. for td in tbl:
  2.     print(td.text)
複製代碼
這樣可以簡單把我們取出的table裡的td的資料全部印出來。如果是要特定的格式,那就要另外處理。

TOP

回復 50# c_c_lai
ipython的話可能會在C:\Users\登入中使用者底下,可以找找看。

TOP

回復 54# c_c_lai
通常我都只需要網頁裡少數的幾個數字,所以也沒有認真研究過表格的完整抓取,這vba的code看起來已經很簡潔了,
跑出來的效果也很好,如果是要放到excel裡,我會直接用您的code。L大提的pandas可以達到類似的效果,但是像這種格式比較雜的還是要做調整,
再放到excel裡頭可能還沒有這個漂亮。

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題