Google Hacks Free Open Book

Google Hacks

Previous Section Next Section

Hack 59 Programming the Google Web API with VB.NET

figs/moderate.giffigs/hack59.gif

Create GUI and console Google search applications with Visual Basic and the .NET framework.

Along with the functionally identical C# [Hack #58] version, the Google Web APIs Developer's Kit [Section 5.4] (dotnet/Visual Basic folder) includes a sample Google search in Visual Basic. While you can probably glean just about all you need from the Google Demo Form.vb code, this hack provides basic code for a simple console Google search application without the possibile opacity of a full-blown Visual Studio .NET project.

Compiling and running this hack requires that you have the .NET Framework (http://msdn.microsoft.com/library/default.asp?url=/nhp/default.asp?contentid=28000519) installed.

59.1 The Code

' googly.vb
' A Google Web API VB.NET console application
' Usage: googly.exe <query>
' Copyright (c) 2002, Chris Sells.
' No warranties extended. Use at your own risk.
Imports System
Module Googly
  Sub Main(ByVal args As String(  ))
    ' Your Google API developer's key
    Dim googleKey As String = "insert key here"
    ' Take the query from the command-line
    If args.Length <> 1 Then
      Console.WriteLine("Usage: google.exe <query>")
      Return
    End If
    Dim query As String = args(0)
    ' Create a Google SOAP client proxy, generated by:
    ' c:\> wsdl.exe /l:vb http://api.google.com/GoogleSearch.wsdl
    Dim googleSearch As GoogleSearchService = New GoogleSearchService(  )
    ' Query Google
    Dim results As GoogleSearchResult = googleSearch.
doGoogleSearch(googleKey, query, 0, 10, False, "", False, "", "latin1", 
"latin1")
    ' No results?
    If results.resultElements Is Nothing Then Return
    ' Loop through results
    Dim result As ResultElement
    For Each result In results.resultElements
      Console.WriteLine(  )
      Console.WriteLine(result.title)
      Console.WriteLine(result.URL)
      Console.WriteLine(result.snippet)
      Console.WriteLine(  )
    Next
  End Sub
End Module

You'll need to replace "insert key here" with your Google developer's key Section 5.5 (e.g., 12BuCK13mY5h0E/34KN0cK@ttH3Do0R). Your code should look something like:

' Your Google API developer's key
Dim googleKey As String = "12BuCK13mY5h0E/34KN0cK@ttH3Do0R"

59.2 Compiling the Code

Before compiling the VB application code itself, you must create a Google SOAP client proxy. The proxy is a wodge of code custom built to the specifications of the GoogleSearch.wsdl Section 5.6 file, an XML-based description of the Google Web Service, all its methods, parameters, and return values. Thankfully, you don't have to do this by hand; the .NET Framework kit includes an application, wsdl.exe to do all the coding for you.

This is a remarkable bit of magic if you think about it: the lion's share of interfacing to a web service autogenerated from a description thereof.

Call wsdl.exe with the location of your GoogleSearch.wsdl file and specify that you'd like Visual Basic proxy code:

C:\GOOGLY.NET\VB>wsdl.exe /l:vb GoogleSearch.wsdl

If you don't happen to have the WSDL file handy, don't fret. You can point wsdl.exe at its location on Google's web site:

C:\GOOGLY.NET\VB>wsdl.exe /l:vb http://api.google.com/GoogleSearch.wsdl
Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 1.0.3705.0]
Copyright (C) Microsoft Corporation 1998-2001. All rights reserved.
Writing file 'C:\GOOGLY.NET\VB\GoogleSearchService.vb'.

What you get is a GoogleSearchService.vb file with all that underlying Google SOAP-handling ready to go:

'---------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'     Runtime Version: 1.0.3705.288
'
'     Changes to this file may cause incorrect behavior and will be lost if 
'     the code is regenerated.
' </autogenerated>
'---------------------------------------------------------------------------
Option Strict Off
Option Explicit On
Imports System
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization
...
    Public Function BegindoGoogleSearch(ByVal key As String, ByVal q As
String, ByVal start As Integer, ByVal maxResults As Integer, ByVal
filter As Boolean, ByVal restrict As String, ByVal safeSearch As
Boolean, ByVal lr As String, ByVal ie As String, ByVal oe As String,
ByVal callback As System.AsyncCallback, ByVal asyncState As Object) As
System.IAsyncResult
        Return Me.BeginInvoke("doGoogleSearch", New Object(  ) {key, q, 
start, maxResults, filter, restrict, safeSearch, lr, ie, oe}, callback,
asyncState) End Function
    
    '<remarks/>
    Public Function EnddoGoogleSearch(ByVal asyncResult As System.
IAsyncResult) As GoogleSearchResult
        Dim results(  ) As Object = Me.EndInvoke(asyncResult)
        Return CType(results(0),GoogleSearchResult)
    End Function
End Class
...

Now to compile that googly.vb:

C:\GOOGLY.NET\VB>vbc /out:googly.exe *.vb
Microsoft (R) Visual Basic .NET Compiler version 7.00.9466
for Microsoft (R) .NET Framework version 1.00.3705
Copyright (C) Microsoft Corporation 1987-2001. All rights reserved.

59.3 Running the Hack

Run Googly on the command line, passing it your Google query:

C:\GOOGLY.NET\VB>googly.exe "query words"

The DOS command window isn't the best at displaying and allowing scrollback of lots of output. To send the results of your Google query to a file for perusal in your favorite text editor, append: > results.txt

59.4 The Results

Functionally identical to its C# counterpart [Hack #58], running this Visual Basic hack should turn up about the same results—Google index willing.

—Chris Sells and Rael Dornfest

    Previous Section Next Section


         Main Menu
    Main Page
    Table of content
    Copyright
    Dedication
    Credits
    Foreword
    Preface
    Chapter 1. Searching Google
    Chapter 2. Google Special Services and Collections
    Chapter 3. Third-Party Google Services
    Chapter 4. Non-API Google Applications
    Chapter 5. Introducing the Google Web API
    5.1 Hacks #50-59
    5.2 Why an API?
    5.3 Signing Up and Google's Terms
    5.4 The Google Web APIs Developer's Kit
    5.5 Using the Key in a Hack
    5.6 What's WSDL?
    5.7 Understanding the Google API Query
    5.8 Understanding the Google API Response
    Hack 50 Programming the Google Web API with Perl
    Hack 51 Looping Around the 10-Result Limit
    Hack 52 The SOAP::Lite Perl Module
    Hack 53 Plain Old XML, a SOAP::Lite Alternative
    Hack 54 NoXML, Another SOAP::Lite Alternative
    Hack 55 Programming the Google Web API with PHP
    Hack 56 Programming the Google Web API with Java
    Hack 57 Programming the Google Web API with Python
    Hack 58 Programming the Google Web API with C# and .NET
    Hack 59 Programming the Google Web API with VB.NET
    Chapter 6. Google Web API Applications
    Chapter 7. Google Pranks and Games
    Chapter 8. The Webmaster Side of Google
    Colophon
    Index


    More Books
    PHP Hacks
    Processing Xml With Java - A Guide To Sax, Dom, Jdom, Jaxp, And Trax
    The Koran (Holy Qur'an)
    Macromedia Flash 8 Bible
    Search Engine Optimization for Dummies
    YouTube Traffic
    PHP 5 for Dummies
    Harry Potter and The Chamber of Secrets
    Harry Potter and the Sorcerer's Stone
    The Pilgrim's Progress
    Wireless Hacks
    Flash Hacks. 100 Industrial-Strength Tips & Tools
    PayPal Hacks. 100 Industrial-Strength Tips and Tools
    Amazon Hacks
    Pdf Hacks
    The Da Vinci Code
    Google Hacks
    The Holy Bible
    Windows XP For Dummies
    Harry Potter and the Half-Blood Prince
    Seo Book
    Upgrading and Repairing Networks
    Macromedia Dreamweaver 8 UNLEASHED
    Windows XP Annoyances
    Windows XP Hacks
    Microsoft Windows XP Power Toolkit
    Teach Yourself MS Office In 24Hours
    iPod & iTunes Missing Manual
    PC Hacks 100 Industrial-Strength Tips and Tools
    PC Overclocking, Optimization, and Tuning - 2th Edition
    PC Hardware In A Nutshell 3rd Edition
    PC Hardware in a Nutshell, 2nd Edition
    Upgrading and Repairing PCs
    Google for Dummies
    MySQL Cookbook
    Teach Yourself Macromedia Flash 8 In 24 Hours
    PHP CookBook
    Sams Teach Yourself JavaScript in 24 Hours
    PHP5 Manual
    Free Games Paper Airplanes
    500 Juegos Gratis 500 Giochi Gratis 500 Jeux Gratuits 500 Jogos Gratis 500 Kostenlose Spiele