返回列表 上一主題 發帖

[發問] 想請教一個抓歷史股價的程式

請問網址的查詢資料怎麼抓 我用外部資料匯入 他說我網址太長

本帖最後由 GBKEE 於 2014-5-28 16:53 編輯

http://www.insidermonkey.com/insider-trading/screener/
帳密是
******@gmail.com
******     
當我設定
Transaction date from : 2014-01-01
Transaction date to : 2014-05-23
Minimum Transaction Amount : 1000000
我會得到一個查詢的網址 但太長了 我不能用錄製巨集的方式 來編寫 VBA
http://www.insidermonkey.com/ins ... er-of-min-insiders=
我要抓大約1000頁的資料
請問我要怎麼抓 謝謝
小菜鳥一個 請多指教~

TOP

好像可以用 ie 查詢的方式來抓資料
      Const url As String = "http://www.insidermonkey.com/insider-trading/screener/#/symbol=&price=&filing-date-from=&filing-date-to=2014-05-23&transaction=All&amount=&title-director=false&title-officer=false&title-large-shareholder=false&title-other=false&min-transaction-amount=1000000&number-of-min-insiders="
    Cells.Clear
    Set ie = CreateObject("internetexplorer.application") '使用此方式可以免除 "設定引用項目"
    With ie
        .Visible = True 'True為開啟ie, False為不開啟ie
        .Navigate url
        Do While .ReadyState <> 4 '等待網頁開啟
            DoEvents
        Loop
.....
再來的 我就不會寫了
有人可以給我點提示嗎
小菜鳥一個 請多指教~

TOP

Sub Purchases()

Set shts = ActiveSheet
   
For i = 0 To 6000 Step 50
   
If i = 0 Then
  j = 1
Else
  j = (i / 50) * 51 + 1
End If
   
URL = "http://www.insidermonkey.com/insider-trading/screener/#/offset=" & i & "&symbol=&price=&filing-date-from=&filing-date-to=2014-05-23&transaction=All&amount=&title-director=false&title-officer=false&title-large-shareholder=false&title-other=false&min-transaction-amount=1000000&number-of-min-insiders="
   
With CreateObject("InternetExplorer.Application")
  .Visible = False     '  是否顯示 IE
  .Navigate URL
         
         
  Do While .ReadyState <> 4 Or .Busy
    DoEvents
  Loop
  
  Do While .ReadyState <> 4 Or .Busy
    DoEvents
  Loop
      
  xlHtm = .Document.body.innerHTML                '儲存
  Set A = .Document.getElementsBytagname("table")

  .Document.body.innerHTML = A(0).outerHTML
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 他三不五時會停在這行
說找不到定義的物件? 不過我過段時間再按F5就又會跑了
請問這個怎麼改進
  
  .ExecWB 17, 2       '  Select All
  .ExecWB 12, 2       '  Copy selection
            
  With shts
    .Cells(j, 1).Select
    .PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
  End With
            
  .Document.body.innerHTML = xlHtm                  '還原

  shts.Cells.EntireColumn.AutoFit     '  自動調整欄寬
        
  .Quit
        
End With
   
Next i
   
End Sub
小菜鳥一個 請多指教~

TOP

回復 3# kasl

   
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 他三不五時會停在這行
說找不到定義的物件? 不過我過段時間再按F5就又會跑了
程式執行的速度,比網頁下載資料速度快了
  1. With CreateObject("InternetExplorer.Application")
  2.   .Visible = True     '  是否顯示 IE
  3.   .Navigate URL
  4.   Do While .ReadyState <> 4 Or .Busy
  5.     DoEvents
  6.   Loop
  7.   xlHtm = .Document.body.innerHTML                '儲存
  8.   Set A = Nothing
  9.   Do While A Is Nothing  '等候網頁下載資料完成
  10.     Set A = .Document.getElementsByTagName("table")
  11.   Loop
  12.   .Document.body.innerHTML = A(0).outerHTML
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

原來是這樣判斷 我懂了
感謝~
小菜鳥一個 請多指教~

TOP

Set A = Nothing
  Do While A Is Nothing  '等候網頁下載資料完成
    Set A = .Document.getElementsByTagName("table")
  Loop
  .Document.body.innerHTML = A(0).outerHTML
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
當我用 loop狂抓網頁資料時發現有時還是會卡在這一行。
我有用F8單步在那看,有時是網頁打開的速度太慢,但我比較好奇的是
我以為前面那個 do while loop 會幫我做把關的動作,原來沒有。
小菜鳥一個 請多指教~

TOP

本帖最後由 GBKEE 於 2014-6-5 09:04 編輯

回復 6# kasl
但我比較好奇的是 我以為前面那個 do while loop 會幫我做把關的動作,原來沒有。

這網頁下載流量速度的因素
  
我有用F8單步在那看,有時是網頁打開的速度太慢,

修改一下試試看
程式正常時  A.Length = ?
  1. xlHtm = .Document.body.innerHTML                '儲存
  2.   'Set A = Nothing
  3.   Do
  4.     Set A = .Document.getElementsByTagName("table")
  5.   Loop Until A.Length >= ? And Not A Is Nothing
  6.   .Document.body.innerHTML = A(0).outerHTML
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

我看 length =1 剛自己改了程式 試跑 好像不會停了
等睡前整個丟下去抓十萬筆資料試試
感謝~
小菜鳥一個 請多指教~

TOP

[發問] 想請教一個抓歷史股價的程式

如附件 回測表
我打算利用 symbol 和 日期 去如鉅亨網/yahoo/google抓幾個日期的歷史股價下來
本來有做一個所有symbol的歷史股價。但只要抓幾個日期,卻要抓2012/6/1~2014/5/31所有資料,感覺應該有更好的方式。

請問有什麼好的程式寫法或想法嗎?謝謝

insiderMonkey(0608-1簡化).rar (728.59 KB)

小菜鳥一個 請多指教~

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題