2017-09-06 1 views
1

Mein Problem ist gerade nicht in der Lage, die Anfrage von googles Server richtig zu bilden, habe ich versucht, alle Anfrage Header, die mein Browser (Chrome) verwendet, aber das scheint nicht zu funktionieren. Das Endziel dafür ist, in der Anfrage einen Suchbegriff, eine Auflösung und den Dateityp von jpg angeben und das Bild in einen Ordner herunterladen zu können. Irgendwelche Vorschläge wären willkommen und Dank im VorausNicht ganz verstehen, wie eine Anfrage von Googles-Servern mit Python-Anfragen preform

Heres meinen Code so weit:

def funRequestsDownload(searchTerm): 
print("Getting image for track ", searchTerm) 
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36', 'content-length': bytes(searchTerm, 'utf-8')} 
queryStringParameters = {'hl': "en", "tbm": "isch", "source": "hp", "biw":1109, "bih": 475, "q": "SEARCH TERMS", "oq":"meme", "gs_l":"img.3..35i39k1j0l9.21651.21983.0.22205.10.10.0.0.0.0.131.269.2j1.3.0....0...1.1.64.img..7.3.267.0.4mTf5BYtfj8"} 
payload = {'value': searchTerm} 
url = 'http://www.google.co.uk' 
dataDump = requests.get(url, data=payload, headers=headers, "Query String Parameters"=queryStringParameters) 
temp = dataDump.content 
with open('C:/Users/Jordan/Desktop/Music Program/temp.html', 'w') as file: 
    file.write(str(temp)) 
    file.close 
return(temp) 
print("Downloaded image for track ", searchTerm) 

Randbemerkung, ich weiß, das einzige, was im Speichern der HTML-Code der Seite ist, ist dies, weil es eine Rückkehr schlechte Anforderungsseite, und ich möchte diesen Fehler betrachten.

Antwort

2

Google doesn't like people using scraping to access search results. Sie bevorzugen, dass Sie stattdessen ihre API verwenden.

Die von ihnen angebotene API heißt Google Custom Search. Es unterstützt die Suche nach Bildern. Um ihre API zu verwenden, benötigen Sie ein AdSense-Konto. Verwenden Sie den API-Schlüssel, den Sie erhalten, um Ihre API-Aufrufe durchzuführen.

Die URL, die Sie treffen wollen, würden ist

searchUrl = "https://www.googleapis.com/customsearch/v1?q=" + \ 
      searchTerm + "&start=" + startIndex + "&key=" + key + "&cx=" + cx + \ 
      "&searchType=image" 

Pass, die durch Anfragen, eine JSON-Datei wieder mit Ihren Ergebnissen zu erhalten.

Here's einige weitere Lesung.

Verwandte Themen