2017-09-07 1 views
-3

Ich brauche alle Codes der jeweiligen Stadt von dieser Seite zu extrahieren, um einen Python-Wörterbuch des Formulars zu erstellen:Python: get Funktionszeichenfolgen zu extrahieren

('city' : 'institution code') 

aus einem String Start wie:

<li onclick="fillEnte('ABANO TERME','2050540010');">ABANO TERME (PD)</li> 

Dabei ist Abano Terme der Name der Stadt und 2050540010 ist der Institutionscode.

Ich weiß, ich sollte eine GET und als einen regulären Ausdruck verwenden, aber ich weiß nicht wie. Oder sollte ich urllib2 verwenden?

p.s. Ich bin ein autodidaktischer Anfänger, sei geduldig.

+0

Können Sie uns zeigen, was Sie bisher versucht haben, und vielleicht können wir Ihnen von dort aus helfen? – chowsai

+0

Verwenden Sie 'python-requests' für den HTTP-Requests-Teil und etwas wie' BeautifulSoup' für das Parsing. Lösen Sie zuerst das erste Problem - den Inhalt von der Zielwebsite zu bekommen - und sobald es in Ordnung ist, schreiben Sie es in eine lokale Datei, damit Sie den zweiten Teil bearbeiten können - relevante Daten extrahieren - ohne die Website zu DOSIEREN. –

+0

Oh, und was hat es eigentlich mit PHP zu tun ??? –

Antwort

1

Sie sollten installieren und verwenden requests und BeautifulSoup, dies zu tun, wie folgt:

from bs4 import BeautifulSoup 
import requests 
import re 

url = "http://finanzalocale.interno.it/apps/floc.php/ajax/searchComune" 
r = requests.get(url, headers={'User-Agent': 'Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405'}) 
soup = BeautifulSoup(r.content, "html.parser") 

city_codes = {} 

for li in soup.find_all('li'): 
    city, code = re.search(r"'(.*?)','(.*?)'", li['onclick']).groups() 
    city_codes[city] = code 

print city_codes['ABANO TERME'] 

Was würde Ihnen:

2050540010 

Sie können in der Regel installieren diese mit:

pip install requests 
pip install beautifulsoup4 

Das Skript erfasst zunächst den HTML-Code mithilfe der Anforderungsbibliothek und wird übergeben es zu BeautifulSoup, um das HTML zu analysieren. Beachten Sie, dass für diese Website eine geeignete User-Agent angegeben werden muss, andernfalls werden die Daten nicht zurückgegeben.

Als nächstes verwendet das Skript die find_all() Funktion, um alle <li> Einträge im HTML zu erhalten. Jeder von diesen enthält ein onclick= Attribut, das extrahiert wird. Ein regulärer Ausdruck wird dann verwendet, um sowohl die city als auch die code Teile aus dem Text zu extrahieren. Diese werden dann verwendet, um Ihr code_codes Wörterbuch zu erstellen.