2017-11-15 284 views
7

Google Arama API'sı ile çalışıyorum ve bazı sıkıntılarla karşılaşıyorum. (Talepler kütüphaneyi kullanarak Python) Bu istek Ancak documentationAyrılmış kelimeler Google Özel Arama API'sı

göre sözdizimi ile ince

res = requests.get("https://www.googleapis.com/customsearch/v1", params={ 
    "cx": <key1>, 
    "key": <key2>, 
    "alt": "json", 
    "num": 2, 
    "q": "cat sock ship hero monkey baby match" 
}) 

ve iadeler sonuçlarını işleri, bu istek çalışmaz:

res = requests.get("https://www.googleapis.com/customsearch/v1", params={ 
    "cx": <key1>, 
    "key": <key2>, 
    "alt": "json", 
    "num": 2, 
    "q": "cat sock ship hero monkey footnoteref baby match" 
}) 

o döndürür:

{'kind': 'customsearch#search', 
'queries': {'request': [{'count': 2, 
    'cx': '<key>', 
    'inputEncoding': 'utf8', 
    'outputEncoding': 'utf8', 
    'safe': 'off', 
    'searchTerms': 'cat sock ship hero monkey baby footnoteref match', 
    'title': 'Google Custom Search - cat sock ship hero monkey baby footnoteref match', 
    'totalResults': '0'}]}, 
'searchInformation': {'formattedSearchTime': '0.22', 
    'formattedTotalResults': '0', 
    'searchTime': 0.218722, 
    'totalResults': '0'}, 
'spelling': {'correctedQuery': 'cat sock ship hero monkey baby footnote ref match', 
    'htmlCorrectedQuery': 'cat sock ship hero monkey baby <b><i>footnote ref</i></b> match'}, 
'url': {'template': 'https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json', 
    'type': 'application/json'}} 

İki sıra arasındaki tek fark s ikincisinin içinde "footnoteref" kelimesi vardır. Bu kelime ve API'nın davranışları üzerindeki etkisi ile ilgili bir belgede bulamadım. Ne oluyor? Bu davranışı veya ayrılmış sözcüklerin listesini devre dışı bırakmanın bir yolu var mı? Şimdilik, sadece sorgusuzdan gelen sözcüğü kaldıracağım, ama korkarım ki her seferinde başka bir sözcük çıkana kadar sözcükleri çıkarmak için bir haydut köpeği oyunu oynayacağım.

+0

Arama yaptığınız alanda, bu sözcüklerin tümünü içeren bir sayfa olduğundan kesinlikle emin misiniz? Google.com adresine giderseniz, arama çubuğuna "kedi çorap gemisi maymun maymun footnoteref bebek eşleme sitesi: " yazın, herhangi bir sonuç alır mısınız? –

+0

@MikePatrick Eğer bu kelimeleri google sitesinde elle koyarsam, düzeltilmiş kelimeler için sonuçlar döndürür. Ama yine de, özel bir sitede arama yapmıyorum, bir insanın yapacağı bir api'yi bir site olmadan kullanıyorum. – user4052054

+0

Anladım. Bunu deneyerek API explorer * veya * python w/'requests' kullanarak tek bir sonuç elde ediyorum. Tarayıcıdaki sorguya 'site: *' eklemenin başlangıçta bana boş bir set verdiğini fark ettim, ancak şimdi bu SO sorusunu tek sonuç olarak döndürüyor. API'yi kullanarak elde ettiğim tek sonuç şu PDF dosyasıdır: http://purl.access.gpo.gov/GPO/LPS9006 Tek davranış gerçekten. Eğer '' fileT' '' '' fileType '': '' pdf '' eklerseniz, hala boş musunuz? –

cevap

4

Hem "cat sock ship hero monkey footnoteref baby match" hem de "cat sock ship hero monkey baby match" için Google'da arama yaptım.

"cat sock ship hero monkey footnoteref baby match"'un hiçbir şey döndürmediğini ve bunun Google'ın aslında farklı bir arama önerdiğinden kaynaklandığını söylediniz: 'cat sock ship hero monkey baby footnote ref match'.

Sonuçlarınız olmadığında, bir kelimeyi aramadan kaldırmalıyım (en son kelime ile başlayacağım) ve tekrar deneyin. Ya da sadece önerilen aramayı denemelisiniz, örneğin: 'cat sock ship hero monkey baby footnote ref match'. arama hızlı çalışır

, ben aşağıdaki tekniğini uygulamak öneririz:

  • a) aramanız az 3-4 kelime içeriyor

    . aramasını tekrar etmeli, ancak google'ın 'correctedQuery' önerisinden yeni bir kelime eklemelisiniz.
  • b) Aramanız 4 kelimeden daha fazlasını içeriyor. Son kelimesini veya "for", "and". Gibi bir "link word" kelimesini kaldırmalı ve aramayı tekrarlamalısınız.

İyi şanslar.