Google Hacks 2Nd Edition [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Google Hacks 2Nd Edition [Electronic resources] - نسخه متنی

Tara Calishain

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید







Hack 100. Program Google in VB.NET

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

Along with the functionally identical C# version
[Hack #99] ,
the Google Web APIs
Developer's Kit (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
possible 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/netframework/downloads/updates/default.aspx)
installed.


9.17.1. The Code


Save the following code to a text file called
googly.vb:

' 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 API key.
Your code should look something like this:

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

9.17.2. Compiling the Code


Not surprisingly, compiling the code for the VB and .NET application
is very similar to compiling the code in C# and .NET [Hack #99] .

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
file, an XML-based description of the Google Web Service, all its
methods, parameters, and return values. Fortunately, 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.

Call wsdl.exe with the location of your
GoogleSearch.wsdl file and specify that
you'd like VB 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.


9.17.3. Running the Hack


Run Googly on the command line ["How to Run the
Hacks" in the Preface], 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


9.17.4. The Results


Functionally identical to its C# counterpart [Hack #99] ,
the Visual Basic hack should turn up about the same
resultsGoogle index willing. Chris Sells and Rael Dornfest

/ 209