找回密码
 加入
搜索
查看: 2282|回复: 5

如何擷取網頁文字然後在GUI介面顯示

[复制链接]
发表于 2009-2-25 15:23:04 | 显示全部楼层 |阅读模式
想請問一下,我擷取一個網頁內的表格,想要讓表格的內容依照順序顯示在GUI介面上,按照GUICtrlCreateListViewItem的方式來寫入,在程式的部分還要有哪些修正?


#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <IE.au3>
#include <Array.au3>

Dim $oInput[10][10]

#Region ### START Koda GUI section ### Form=D:\AutoIt\腳本\tabbed pages.kxf
$dlgTabbed = GUICreate("Tabbed Notebook Dialog", 413, 298, 261, 182)
GUISetIcon("D:\005.ico")
$PageControl1 = GUICtrlCreateTab(8, 8, 396, 256)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)

;讀取網頁表格數據
$oIE2 = _IECreate ("http://fund.cnyes.com/fund_nav.asp?fundcode=A10031",0,0,1,0);不顯示IE
$oInputs = _IETableGetCollection ($oIE2) ;返回指網頁內所有表格的目標變量
$iNumTables = @extended ;文檔內所以表格的數量
;MsgBox(0, "Table Info", "There are " & $iNumTables & " tables on the page")
$i = 14;指定顯示第幾個表格欄位 $i+1個
;For $oInput In $oInputs
$table = _IETableGetCollection ($oIE2,$i)
$oInput = _IETableWriteToArray ($table) ;讀取指定表格內的數據,寫入到數組
_ArrayDisplay($oInput, "第"&$i+1&"個表單內容",0,1) ;顯示數組
;

$TabSheet1 = GUICtrlCreateTabItem("Funds")
$ListView1 = GUICtrlCreateListView("Item|Date|Name|Address|Value", 8,25,396,250)
$ListView1_0 = GUICtrlCreateListViewItem("1|C", $ListView1)
$ListView1_1 = GUICtrlCreateListViewItem("2|D", $ListView1)
$ListView1_2 = GUICtrlCreateListViewItem("3|F", $ListView1)
$ListView1_3 = GUICtrlCreateListViewItem("4|c", $ListView1)
$ListView1_4 = GUICtrlCreateListViewItem("5|r", $ListView1)
$ListView1_5 = GUICtrlCreateListViewItem("6|j", $ListView1)

GUICtrlSetState(-1,$GUI_SHOW); will be display first
$TabSheet3 = GUICtrlCreateTabItem("Image")

;嵌入圖片
$oIE_code = _IECreateEmbedded ()
$GUIActiveX = GUICtrlCreateObj($oIE_code, 8,25,396,250);定義內嵌IE 窗口大小
_IENavigate ($oIE_code, "about:blank",1)
;加載一個空白網頁,可以自定一個網頁,讓驗證碼圖片顯示左左對齊,頂部對齊,如果你會HTML應該明白什麼意思
$oBody = _IETagNameGetCollection($oIE_code, "body", 0)
_IEDocInsertHTML($oBody, 'IE加載中...', "afterbegin");在嵌入IE底部追加文字
;嵌入圖片 結束

$TabSheet2 = GUICtrlCreateTabItem("IE TAB")

;嵌入IE在分頁上
;$oIE_code = GUICtrlCreateTabItem("IE TAB")
$oIE = _IECreateEmbedded ();Create a Webbrowser object suitable for embedding in an AutoIt GUI with GuiCtrlCreateObj().
$GUIActiveX = GUICtrlCreateObj($oIE, 8,25,396,250);定義內嵌IE 窗口大小
_IENavigate ($oIE, "http://allsharing.net/drupal_5_1/lineworld/fund/html/0676.htm");將IE指向URL
;嵌入IE在分頁上 結束


GUICtrlCreateTabItem(""); end tabitem definition
$Button1 = GUICtrlCreateButton("&OK", 166, 272, 75, 25, 0)
$Button2 = GUICtrlCreateButton("&Cancel", 246, 272, 75, 25, 0)
$Button3 = GUICtrlCreateButton("&Help", 328, 272, 75, 25, 0)


GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###
Get_image()
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

Func Get_image()
;$oImg = _IEImgGetCollection ($oIE,4);返回IE文檔內IMG 實際上就是第4+1張圖
$oImg = _IEImgGetCollection ($oIE,0);返回IE文檔內IMG
$oPic = $oIE.Document.body.createControlRange()
$oPic.Add($oImg)
$oPic.execCommand("Copy");複製到剪貼板
$ImageFilePath = ClipGet();獲取路徑,在臨時文件裡面
 _IEAction ( $oIE_code,"refresh" );刷新嵌入IE頁面
$oBody = _IETagNameGetCollection($oIE_code, "body", 0)
_IEDocInsertHTML($oBody, '<img src='& FileGetShortName($ImageFilePath) &'>', "afterbegin");在嵌入IE底部追加圖片顯示
EndFunc


[ 本帖最后由 fancky 于 2009-2-26 09:37 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-2-25 16:54:43 | 显示全部楼层
把脚本里GUICtrlCreateListViewItem那几句都删了后加入下面这段

For $i=0 To UBound($oInput,2)-1
        Dim $lv_item=""
        For $j=UBound($oInput,1)-1 To 0 Step -1
                $lv_item=$oInput[$j][$i]&"|"&$lv_item        
        Next        
        GUICtrlCreateListViewItem($lv_item,$ListView1)        
Next        
 楼主| 发表于 2009-2-25 17:21:25 | 显示全部楼层
恩,這樣的話是把所有的數據讀起來,不好意思,我在問更深入一點的問題,如果說只要表格的幾格資料,像是這樣,那應該要如何修正呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-2-25 17:48:12 | 显示全部楼层
不好意思 ,看来我是理解错误了
如果只要部分资料,那就直接提取算了,以你的例子来说
GUICtrlCreateListViewItem("1"&"|"&$oInput[1][0]&"|"&$oInput[1][1]&"|"&$oInput[3][0]&"|"&$oInput[1][3], $ListView1)
 楼主| 发表于 2009-2-26 09:35:00 | 显示全部楼层
沒關係的,我順便可以多學另一種寫法,感謝你幫我解決問題,謝謝。
发表于 2016-9-1 15:14:00 | 显示全部楼层
請問兩位大哥, 我要如何抓這網頁的新聞標題, 作者, 跟發文日期, 貼到GUI List View 呢?

https://www.google.com.tw/search ... &tbm=nws&q=房屋+source%3A蘋果
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 00:55 , Processed in 0.092348 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表