2017-02-27 5 views
-1

Ich möchte Python verwenden, um Snapshots von Karten/Bildern von Eigenschaften zu kratzen. Ich habe die Postleitzahl für alle Eigenschaften, die ich brauche, um Karten/Bilder zu erhalten, aber ich bin unsicher, wie man Python benutzt, um die Postleitzahl zu nehmen, eine Website zu durchsuchen, eine Momentaufnahme der Karte zu machen und sie dann zu speichern.Python "Scraping" Karten/Bilder

Ich hatte ursprünglich gedacht, Selenium zu verwenden, aber nicht sicher, dass dies der effizienteste Weg wäre, die Websites zu durchsuchen?

Ich habe erst ein paar Monate Python gelernt und würde es wirklich schätzen, wenn mir jemand in die richtige Richtung zeigen könnte!

+1

Können Sie ein Beispiel für die Seite 'URL' teilen? mit erwarteter Ausgabebeschreibung. Zeigen Sie auch, was Sie bereits versucht haben – Andersson

+0

@Andersson, 1 Beispiel - http://maps.environment-agency.gov.uk/wiyby/wiybyController?x=357683.0&y=355134.0&scale=1&layerGroups=default&ep=map&textonly=off&lang=_e&topic= floodmap - Ich möchte einen Screenshot speichern und dann einen Teil des Textes aus "Text only version" auf der oberen rechten Seite extrahieren. Um ehrlich zu sein habe ich noch nichts dafür ausprobiert. Dies ist das nächste Projekt auf meinem Radar und ich hüpfte, um ein paar Ideen zu erforschen, bevor ich anfing. Ich denke, dass Python ziemlich neu ist, das war am schwierigsten, Ressourcen zu finden! – Maverick

Antwort

2

könnten Sie die Google-statische Karten-API verwenden, etwa so:

import requests 

zoom = '13' 
size = '600x300' 
maptype = 'roadmap' 

scheme = 'https://maps.googleapis.com/maps/api/staticmap?center=[Location]&zoom={0}&size={1}&maptype={2}'.format(zoom, size, maptype) 
locations = ['Brooklyn+Bridge,New+York,NY', '2550+SW+Hillsboro+Hwy,Hillsboro,OR', 'TX+78016'] # place, address, state+zip 

for loc in locations: 

    url = scheme.replace('[Location]', loc) 
    resp = requests.get(url) 

    print('Status code: {0} | {1}'.format(resp.status_code, url)) 

    if resp.status_code == 200: 

     with open('map_image_{0}.png'.format(loc), 'wb') as f: 

      f.write(resp.content) 
+0

Vielen Dank! apollo2020! – Maverick

1

Scrapy als auch eine gute Wahl sein kann. Es braucht einige initiale Einstellungen, um ein Projekt zu starten, und aktuell ist die letzte stabile Version für Python 2.7 (Unterstützung für Python 3 läuft).

Wenn Ihr daran interessiert, Scrapy hier ist die Dokumentation:

und ein Zitat, wie Scrapy Bilder aus Dateien ziehen können: https://doc.scrapy.org/en/1.3/index.html

„Scrapy bietet wiederverwendbare Artikel Pipelines zu einem bestimmten Element angebracht Herunterladen von Dateien (B. wenn Sie Produkte scratzen und auch ihre Images lokal herunterladen möchten.) Diese Pipelines haben ein wenig Funktionalität und Struktur (wir bezeichnen sie als Medien-Pipelines), aber normalerweise verwenden Sie entweder die Files-Pipeline oder die Images-Pipeline . "

Ich habe gerade erst mit Scrapy begonnen und habe Spiders (ihren Web Crawler) eingerichtet und damit begonnen, sie zu schreiben und kann dir helfen, dich einzurichten, wenn du interessiert bist.

+0

Danke pdel! – Maverick