❶ 如何用vba抓取網頁數據
Sub cc()
Cells.ClearContents
Set oDoc = CreateObject("htmlfile")
With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "GET",
"",
False
.Send
.WaitForResponse
oDoc.body.innerHTML = .responsetext
Set r = oDoc.All.tags("table")(7).Rows
For i = 0 To r.Length - 1
k = [a65536].End(3).Row
For j = 0 To r(i).Cells.Length - 1
Cells(k + 1, j + 1) = r(i).Cells(j).innerText
Next j
Next i
Set r = Nothing
End With
End Sub
ForeSpider數據採集系統是天津市前嗅網路科技有限公司自主知識產權的通用性互聯網數據採集軟體。軟體幾乎可以採集互聯網上所有公開的數據,通過可視化的操作流程,從建表、過濾、採集到入庫一步到位。支持正則表達式操作,更有強大的面向對象的腳本語言系統。
台式機單機採集能力可達4000-8000萬,日採集能力超過500萬。伺服器單機集群環境的採集能力可達8億-16億,日採集能力超過4000萬。並行情況下可支撐百億以上規模數據鏈接,堪與網路等搜索引擎系統媲美。
軟體特點:
一.通用性:可以抓取互聯網上幾乎100 %的數據
1.支持用戶登錄。
2.支持Cookie技術。
3.支持驗證碼識別。
4.支持HTTPS安全協議。
5.支持OAuth認證。
6.支持POST請求。
7.支持搜索欄的關鍵詞搜索採集。
8.支持JS動態生成頁面採集。
9.支持IP代理採集。
10.支持圖片採集。
11.支持本地目錄採集。
12.內置面向對象的腳本語言系統,配置腳本可以採集幾乎100%的互聯網信息。
二.高質量數據:精準採集所需數據
1.獨立知識產權JS引擎,精準採集。
2.內部集成資料庫,數據直接採集入庫。
3.內部創建數據表結構,抓取數據後直接存入資料庫相應欄位。
4.根據dom結構自動過濾無關信息。
5.通過模板配置鏈接抽取和數據抽取,目標網站的所有可見內容均可採集,智能過濾無關信息。
6.採集前數據可預覽採集,隨時調整模板配置,提升數據精度和質量。
7.欄位的數據支持多種處理方式。
8.支持正則表達式,精準處理數據。
9.支持腳本配置,精確處理欄位的數據。
三.高性能:千萬級的採集速度
1.C++編寫的爬蟲,具備絕佳採集性能。
2.支持多線程採集。
3.台式機單機採集能力可達4000-8000萬,日採集能力超過500萬。
4.伺服器單機集群環境的採集能力可達8億-16億,日採集能力超過4000萬。
5.並行情況下可支撐百億以上規模數據鏈接,堪與網路等搜索引擎系統媲美。
6.軟體性能穩健,穩定性好。
四.簡易高效:節約70%的配置時間
1.完全可視化的配置界面,操作流程順暢簡易。
2.基本不需要計算機基礎,代碼薄弱人員也可快速上手,降低操作門檻,節省企業爬蟲工程師成本。
3.過濾採集入庫一步到位,集成表結構配置、鏈接過濾、欄位取值、採集預覽、數據入庫。
4.數據智能排重。
5.內置瀏覽器,欄位取值直接在瀏覽器上可視化定位。
五. 數據管理:多次排重
1. 內置資料庫,數據採集完畢直接存儲入庫。
2. 在軟體內部創建數據表和數據欄位,直接關聯資料庫。
3. 採集數據時配置數據模板,網頁數據直接存入對應數據表的相應欄位。
4. 正式採集之前預覽採集結果,有問題及時修正配置。
5. 數據表可導出為csv格式,在Excel工作表中瀏覽。
6. 數據可智能排除,二次清洗過濾。
六. 智能:智能模擬用戶和瀏覽器行為
1.智能模擬瀏覽器和用戶行為,突破反爬蟲限制。
2.自動抓取網頁的各類參數和下載過程的各類參數。
3.支持動態IP代理加速,智能過濾無效IP代理,提升代理的利用效率和採集質量。
4.支持動態調整數據抓取策略,多種策略讓您的數據無需重采,不再擔心漏采,數據採集更智能。
5.自動定時採集。
6.設置採集任務條數,自動停止採集。
7.設置文件大小閾值,自動過濾超大文件。
8.自由設置瀏覽器是否加速,自動過濾頁面的flash等無關內容。
9.智能定位欄位取值區域。
10.可以根據字元串特徵自動定位取值區域。
11.智能識別表格的多值,表格數據可以完美存入相應欄位。
七. 優質服務
1.數據採集完全在本地進行,保證數據安全性。
2.提供大量的各個網站配置模板在線下載,用戶可以自由導入導出。
3.升級後續不斷開發的更多功能。
4.更換2次綁定的計算機。
5.為用戶提供各類高端定製化服務,全方位來滿足用戶的數據需求。
❸ vba如何抓取網頁上的數據
代碼:
Private Sub CommandButton1_Click()
Dim IE As Object
Dim i As Integer
i = 1
'打開網頁:創建一個IE對象,然後給一些屬性賦值。Visible是可見性,navigate是網頁地址
Set IE = CreateObject('internetexplorer.application')
With IE
.Visible = True
.navigate 'http://hanyu.iciba.com/pinyin.html'
'等待網頁完全載入
Do Until .ReadyState = 4
DoEvents
Loop
'拷貝漢字到網頁文本框,然後點擊轉換按鈕,並取出轉換結果
Do While Sheets('sheet1').Cells(i 1, 1).Value <> ''
'從IE.Document.all句柄中把頁面上要使用的節點找出來。這里的方法是:
.document.all('source').Value 給以source為ID的文本框賦值
.document.all.tags('img')(1).Click 點擊圖片集合里的第二張圖片
.document.all('to').Value 取出以to為ID的文本框內容
.document.all('source').Value = Sheets('sheet1').Cells(i 1, 1).Value
.document.all.tags('img')(1).Click
Do Until .ReadyState = 4
DoEvents
Loop
Sheets('sheet1').Cells(i 1, 2).Value = .document.all('to').Value
i = i 1
Loop
'關閉網頁
.quit
End With
End Sub
代碼解釋:(見注釋)
貼士:
1)VBA只能操作IE瀏覽器,原因就一句話:都是微軟家的產品嘛
2)要先引用Micorsoft Internet Controls
❹ excel2016。如何 vba 抓取網頁指定數據,並且自動更新至excel,網頁登陸有用戶名和密
1、這個問題相對比較專業。建議再去知乎看看
2、另外咨詢下淘寶看看賣VBA程序的人都給出什麼方案
3、以下代碼轉載自網路:
Dimhttp
Sethttp=CreateObject("Microsoft.XMLHTTP")
http.Open"POST","連接地址",False
http.send""
Ifhttp.Status=200Then
selection.text=http.responseText
EndIf
二是開啟IE進程
Subtest()
Setie=CreateObject("InternetExplorer.Application")'設置變數
Withie'設置塊
.Navigate("需要打開的網頁的網址")'打開網頁
.Visible=True'是否顯示ie窗口
While.readystate<>4'延遲等待頁面載入完畢
DoEvents
Wend
Fori=22To49Step3'取數循環
S=S&""&.Document.all.tags("td")(i).innerTEXT'取數據到變數,熟悉HTML的DOM可以修改這個實現各種內容
Nexti
EndWith'塊結束
S=LTrim(S)'刪除左邊空格
Application.SendKeys"^{F4}"'發送按鍵關閉當前瀏覽器標簽
MsgBoxS'顯示結果
Setie=Nothing'釋放內存
EndSub
❺ 求助,利用excel vba提取資料庫數據問題
1、漢字在前,數字在後面的情形。可以用MID,min, find三個函數來實現提取裡面的數字。如圖:在B2輸入「=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&「0123456789」)),20)」
Excel怎麼只提取表格中的數字
5、指定從第幾個數組提取開始。也就是說在不連續的那些數字中,從第幾次出現的數組開始提取。同樣在模塊那裡輸入如下代碼:
Function GetNums(rCell As Range, num As Integer) As StringDim Arr1() As String, Arr2() As StringDim chr As String, Str As StringDim i As Integer, j As IntegerOn Error GoTo line1
Str = rCell.TextFor i = 1 To Len(Str)chr = Mid(Str, i, 1)If (Asc(chr) 《 48 Or Asc(chr) 》 57) ThenStr = Replace(Str, chr, 「 」)End IfNext
Arr1 = Split(Trim(Str))ReDim Arr2(UBound(Arr1))For i = 0 To UBound(Arr1)If Arr1(i) 《》 「」 ThenArr2(j) = Arr1(i)j = j + 1End IfNext
GetNums = IIf(num 《= j, Arr2(num - 1), 「」)line1:End Function
❻ 如何用VBA調用資料庫中數據
首先在工具 引用 中引入ADO組件(全名叫Microsoft ActiveX Data什麼的,很好好找),然後聲明一個連接變數 conn as ADODB.Connetion用來連接資料庫,這里需要連接字元串,不知道你是什麼類型資料庫,所以連接字元串無法給出,再聲明一個數據集變數ds as ADODB. DATASET用於執行SQL語句並返回結果集,得到結果集之後就可以訪問裡面的內容了