wsSearch(api) - Contextual Web Search

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

wsSearch(api) - Contextual Web Search

Post by BoBo » 27 Mar 2021, 12:59

Heute im Angebot: eine Websuche. Der dafür notwendige API-Key ist vorab bei :arrow: RapidAPI zu beziehen.

Code: Select all

;	https://rapidapi.com/user/contextualwebsearch
;	https://rapidapi.com/contextualwebsearch/api/web-search			: Quota 100/day, 5/sec
;	https://rapidapi.com/contextualwebsearch/api/keyword-analysis	: Quota 100/day 
;

#SingleInstance, Force

MsgBox % wsAutoComplete("butterfinger")			; Suggest as-you-type completion.
MsgBox % wsImage("Taylor Swift")				; Get relevant images for a given query.
MsgBox % wsNews("Boris Johnson")				; Get news articles relevant for a given query.
MsgBox % wsSpell("Cranberry")					; Check spelling.
MsgBox % wsSearch("Ursula von der Leyen")		; Get relevant web pages for a given query.
MsgBox % wsQuerySites("Taylor Swift")			; Get the popular sites for a given search query.
MsgBox % wsQueryKeywords("cyberia game review")	; Get the main keywords for a given search query.
MsgBox % wsQuerySimilar("John Wick 3")			; Get similar queries for a given search query.

wsQuerySimilar(text) {
	url	:=	"api/query/SimilarQueries?q=" . text
	Return URLDownloadToVar(url,A_ThisFunc)
	}

wsQueryKeywords(text) {
	url	:=	"api/query/QueryKeywords?q=" . text
	Return URLDownloadToVar(url,A_ThisFunc)
	}

wsQuerySites(text) {
	url	:=	"api/query/PopularDomainsForQuery?q=" . text
	Return URLDownloadToVar(url,A_ThisFunc)
	}

wsAutoComplete(text) {
	url :=	"api/spelling/AutoComplete?text=" . text
	Return URLDownloadToVar(url,A_ThisFunc)
	}

wsImage(query:="test",pNumber:=1,pSize:=50,ac:="false",ss="false") {
	url	:=	"api/Search/ImageSearchAPI?q=" 
		. 	 query														; string
		.	"&pageNumber="
		.	 pNumber													; number
		.	"&pageSize="
		.	 pSize														; number (maximum 50)
		.	"&autoCorrect="
		.	 ac															; boolean
		.	"&safeSearch="
		.	 ss															; boolean
	Return URLDownloadToVar(url,A_ThisFunc)
	}

wsNews(query:="test",pNumber:=1,pSize:=50,ac:="false",ss="false") {
	url	:=	"api/search/NewsSearchAPI?q="
		. 	 query
		.	"&pageNumber="
		.	 pNumber
		.	"&pageSize="
		.	 pSize
		.	"&autoCorrect="
		.	 ac
		.	"&fromPublishedDate=null"
		.	"&toPublishedDate=null"
		.	"&safeSearch="
		.	 ss
	Return URLDownloadToVar(url,A_ThisFunc)
	}

wsSpell(text) {
	url	:=	"api/spelling/SpellCheck?text=" . text
	Return URLDownloadToVar(url,A_ThisFunc)
	}

wsSearch(query:="test",pNumber:=1,pSize:=50,ac:="false",ss="false") {
	url	:=	"api/Search/WebSearchAPI?q="
		.	 query
		.	"&pageNumber="
		.	 pNumber
		.	"&pageSize="
		.	 pSize
		.	"&autoCorrect="
		.	 ac
		.	"&safeSearch="
		.	 ss
	Return URLDownloadToVar(url,A_ThisFunc)
	}

URLDownloadToVar(url,func) {
	myAPIKey := <your API key here> !!!
	if func in wsQuerySimilar,wsQueryKeywords,wsQuerySites
		host:="keyword-analysis.p.rapidapi.com", url:="https://" . host . "/" . url 
	else
		host:="contextualwebsearch-websearch-v1.p.rapidapi.com", url:="https://" . host . "/" . url
	url :=	StrReplace(url,A_Space,"%20")
	req := ComObjCreate("Msxml2.XMLHTTP")
	req.open("GET", url, False)
	req.setRequestHeader("x-rapidapi-key", myAPIKey)
	req.setRequestHeader("x-rapidapi-host", host)
	req.setRequestHeader("Content-Type","application/json; charset=utf-8")
	req.setRequestHeader("useQueryString","true")
	req.Send(data)
	Return req.responseText
	}
Wobei die Funktion wsQueryKeywords die angegebenen Schlüsselbegriffe wohl nach Gewichtung retourniert (schlampt jedoch beim Ausgabeformat, was aber auch ein GIGO-Resultat sein könnte) bin mir da nicht sicher, und lasse mich gerne belehren!??


BTW, wie sagte Heinz Schenk nach 12 Äpplern : "API is wie Fernsehn - mer muss schdändisch uff die Quot[a|e] achde !!" :mrgreen:

Return to “Skripte und Funktionen”