search.py源代码分析:用到了google算法

"""Search Google from the command line

 

This program is part of "Dive Into Python", a free Python book for

experienced programmers.  Visit http://diveintopython.org/ for the

latest version.

"""

 

__author__ = "Mark Pilgrim (mark@diveintopython.org)"

__version__ = "$Revision: 1.2 $"

__date__ = "$Date: 2004/05/20 18:53:59 $"

__copyright__ = "Copyright (c) 2004 Mark Pilgrim"

__license__ = "Python"

 

from SOAPpy import WSDL

#导入WSDL类

 

# you'll need to configure these two values;

# see http://www.google.com/apis/

WSDLFILE = 'http://www.google.com/apis/'

%你要搜索的网址

APIKEY = 'YOUR_GOOGLE_API_KEY'

%你注册 Google 网络服务时获得的 Google API 许可证

 

_server = WSDL.Proxy(WSDLFILE)

%调用WSDL的Proxy函数搜索WSDLFILE

 

%定义一个搜索的函数

%q为你要搜索的词或词组

def search(q):

    """Search Google and return list of {title, link, description}"""

    results = _server.doGoogleSearch(

        APIKEY, q, 0, 10, False, "", False, "", "utf-8", "utf-8")

    %调用doGoogleSearch函数,注意此函数有10个参数!

    各参数的含义如下:

    • key――你注册 Google 网络服务时获得的 Google API 许可证。
    • q――你要搜索的词或词组。其语法与 Google 的网站表单处完全相同,你所知道的高级搜索语法和技巧这里完全适用。
    • start――起始的结果编号。与使用 Google 网页交互搜索时相同,这个函数每次返回 10 个结果。如果你需要查看 “第二” 页结果则需要将 start 设置为 10。
    • maxResults――返回的结果个数。目前的值是 10,当然如果你只对少数返回结果感兴趣或者希望节省网络带宽,也可以定义为返回更少的结果。
    • filter――如果设置为 True,Google 将会过滤结果中重复的页面。
    • restrict――这里设置 country 并跟上一个国家代码可以限定只返回特定国家的结果。例如:countryUK 用于在英国搜索页面。你也可以设定 linuxmac 或者bsd 以便搜索 Google 定义的技术站点组,或者设为 unclesam 来搜索美国政府站点。
    • safeSearch――如果设置为 True,Google 将会过滤掉色情站点。
    • lr (“language restrict”,语言限制)――这里设置语言限定值返回特定语言的站点。
    • ie 和 oe (“input encoding”,输入编码和 “output encoding”,输出编码)――不赞成使用,都应该是 utf-8

 

 

    return [{"title": r.title.encode("utf-8"),

             "link": r.URL.encode("utf-8"),

             "description": r.snippet.encode("utf-8")}

            for r in results.resultElements]

    %对于每一个返回结果,返回该结果的标题、url、描述

 

if __name__ == '__main__':

    import sys

    for r in search(sys.argv[1])[:5]:

        print r['title']

        print r['link']

        print r['description']

        print

%调用自定义的search函数将sys的第一个参数作为搜索的关键词,返回所有的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值