Warum ĂŒberhaupt Bing?
Weil Du Informationen brauchst.
Aktuelle, webbasierte Inhalte â aus Deiner Datenbank heraus.
Und weil Bing Search API via REST einfach erreichbar ist.
Ich zeig Dir, wie Du Access + VBA nutzt, um gezielt Suchanfragen zu stellen.
Und wie Du die Ergebnisse analysierst, filterst, speicherst.
Was brauchst Du?
- Microsoft Access (lokal)
- Bing Search API Key (Microsoft Azure Cognitive Services)
- Internetverbindung
- Basis-Kenntnisse in REST + JSON
Bing Search API einrichten
- Azure-Konto unter portal.azure.com
- Ressource âBing Search v7â anlegen
- API-Key und Endpoint kopieren
z.âŻB.https://api.bing.microsoft.com/v7.0/search
Tabelle vorbereiten
Tabelle | Zweck |
---|---|
tblSuchbegriffe | Liste von Stichwörtern |
tblTreffer | Ergebnis-Links, Titel, Snippets |
VBA: Anfrage an Bing Search
Function SucheMitBing(suchwort As String) As String
Dim http As Object
Dim url As String
Dim apiKey As String
apiKey = "DEIN_API_KEY"
url = "https://api.bing.microsoft.com/v7.0/search?q=" & URLEncode(suchwort)
Set http = CreateObject("MSXML2.ServerXMLHTTP")
http.Open "GET", url, False
http.setRequestHeader "Ocp-Apim-Subscription-Key", apiKey
http.Send
SucheMitBing = http.responseText
End Function
URLEncode-Hilfsfunktion
Function URLEncode(text As String) As String
Dim scriptControl As Object
Set scriptControl = CreateObject("ScriptControl")
scriptControl.Language = "JScript"
scriptControl.AddCode "function enc(x) { return encodeURIComponent(x); }"
URLEncode = scriptControl.Run("enc", text)
End Function
Treffer extrahieren (Titel + URL + Snippet)
Function ParseBingJSON(json As String)
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
sc.AddCode "function parse(json) {" & _
"var obj = JSON.parse(json);" & _
"var res = ''; " & _
"if(obj.webPages && obj.webPages.value){" & _
" for(var i=0; i<obj.webPages.value.length; i++){" & _
" var item = obj.webPages.value[i];" & _
" res += item.name + '|' + item.url + '|' + item.snippet + '\n';" & _
" }" & _
"} return res; }"
ParseBingJSON = sc.Run("parse", json)
End Function
Ergebnisse speichern
Sub SpeichereTreffer(json As String, suchbegriffID As Long)
Dim daten As String
Dim zeilen() As String
Dim spalten() As String
Dim i As Long
daten = ParseBingJSON(json)
zeilen = Split(daten, vbLf)
For i = 0 To UBound(zeilen)
If Trim(zeilen(i)) <> "" Then
spalten = Split(zeilen(i), "|")
If UBound(spalten) = 2 Then
CurrentDb.Execute "INSERT INTO tblTreffer (SuchbegriffID, Titel, URL, Snippet) VALUES (" & _
suchbegriffID & ", '" & Replace(spalten(0), "'", "''") & "', '" & Replace(spalten(1), "'", "''") & "', '" & Replace(spalten(2), "'", "''") & "')"
End If
End If
Next i
End Sub
Beispielaufruf
Sub StarteBingSuche()
Dim suchbegriff As String
Dim suchbegriffID As Long
Dim json As String
suchbegriff = "Industrie 4.0 Maschinenbau"
suchbegriffID = 42 ' aus Deiner Tabelle
json = SucheMitBing(suchbegriff)
SpeichereTreffer json, suchbegriffID
MsgBox "Suche abgeschlossen."
End Sub
Anwendungsbeispiele
- Konkurrenz-Check zu Produkten
- Reputationsanalyse (Snippets nach SchlĂŒsselwörtern filtern)
- Automatischer Themeninput fĂŒr Marketing
- Zugriff auf aktuelle Informationen ohne Browser
Was Du beachten musst
- Du darfst nicht zu viele Anfragen pro Sekunde stellen (Rate Limit)
- Snippets sind oft unsauber â Regular Expressions helfen
- Logge alle Anfragen, falls Du spÀter Referenzen brauchst
- URLs ggf. auf âTote Linksâ prĂŒfen lassen (per HTTP HEAD)
„Bing weiĂ viel â Access schreibtâs auf.“
Wenn Du sowas brauchst â ich helf Dir beim Einbauen.
Pragmatisch. Norddeutsch. Zugriff statt Blabla.
No responses yet