从Google自定义搜索API

时间:2018-06-08 13:58:02

标签: python python-3.x google-custom-search google-api-python-client

devKey = 'FAUX123456789'
customSearchEngineId = 'FAUX123456789'

searchTermArray = ['happy pets valencia CA',
                   'pet doctor z tuscon AZ',
                   'best friends veterinary hospital crossville TN',
                   'pet pal animal shelter st petersburg FL']

termsToExclude = ['happy','pet','vet']

numberOfResults = 1

for eachSearchTerm in searchTermArray:
    service = build("customsearch", "v1", developerKey=devKey)
    results = service.cse().list(q=eachSearchTerm, cx=customSearchEngineId, num=numberOfResults, excludeTerms=termsToExclude)
    results = results['items']
    print(results)

根据google custom search API documentation excludeTerms 采用字符串值。正如您所看到的,我尝试插入一个字符串数组,但它并不常用。我实际上是独立测试每个术语,每次都会产生不同的结果。 (请原谅 dotcom ,因为我无法发布实际链接)

每个测试的结果:

  • termsToExclude = ''
    happypetsveterinarydotcom /
    petdoctorxdotcom /
    bestfriendsvetdotorg /
    petpalanimalshelterdotcom /

    termsToExclude = ['happy','pet','vet']
    happypetsveterinarydotcom /
    ollinghillspetclinicdotcom /
    bestfriendsvetdotorg /
    petpalanimalshelterdotcom /

    termsToExclude = 'happy'
    krisersdotcom / location / valencia /
    valenciaanimalhospitaldotcom / reviews.html
    bestfriendsvetdotorg /
    petpalanimalshelterdotcom / adopt.php

    termsToExclude = 'pet'
    teambusbydotcom /房地产新闻/家和设计/ 60 - 设计 - 快乐宠物 - 从 - 环游世界60照片
    www.zmansiondotcom /
    www.bestfriendequinedotcom /
    disneyworld.disney.godotcom /娱乐/魔法王国/字符会见高飞 - 唐纳德/

    termsToExclude = 'vet'
    happypetsveterinarydotcom /医疗记录/我 - 宠物医疗记录/
    www.staystudio6dotcom / en / motels.az.tucson.6002.html
    langeanimalhospitaldotcom / josh-friends /
    petpalanimalshelterdotcom /事件/ purrfect-姿势瑜伽/

现在..

Google的vague user-friendly documentation声明如下:

excludeTerms string :标识不应出现在搜索结果中的任何文档中的字词或短语。

我不确定"搜索结果中的任何文件" 是否完全正确,但我通过此过程发现的是使用单个字符串时,当使用字符串数组时,它似乎排除了字符串值的URL,它似乎根本没有相同的行为。有谁能解释一下?或者请解释是否有适当的方法来插入此关键字excludeTerms参数中的一系列术语?

我想澄清一下,我想要完成的是能够插入一个字符串数组,以便我的结果将专门排除包含termsToExclude中的条款的网址,以便我可以获得更多我的结果中的理想网址。另外,请记住,当我使用单个字符串时,会产生所需的结果,而数组似乎不会以相同的方式工作。

感谢您的任何信息!

1 个答案:

答案 0 :(得分:4)

excludeTerms是一个扁平字符串,因此不确定在数组中传递的行为。

尝试

termsToExclude = 'happy pet vet'