Ich bin neu in der Programmierung und Python und versuche, die Anzahl der verfügbaren Fahrräder an einer bestimmten Station im DC Bikeshare-Programm zuzugreifen. Ich glaube, dass das mit BeautifulSoup der beste Weg ist. Die gute Nachricht ist, dass die Daten in verfügbar sind, was erscheint hier ein sauberes Format zu sein: https://www.capitalbikeshare.com/data/stations/bikeStations.xmlBeautifulSoup für den Zugang zu verfügbaren Bikes in DC bikeshare
Hier ist ein Beispiel einer Station:
<station>
<id>1</id>
<name>15th & S Eads St</name>
<terminalName>31000</terminalName>
<lastCommWithServer>1460217337648</lastCommWithServer>
<lat>38.858662</lat>
<long>-77.053199</long>
<installed>true</installed>
<locked>false</locked>
<installDate>0</installDate>
<removalDate/>
<temporary>false</temporary>
<public>true</public>
<nbBikes>7</nbBikes>
<nbEmptyDocks>8</nbEmptyDocks>
<latestUpdateTime>1460192501598</latestUpdateTime>
</station>
ich bin für den <nbBikes>
Wert suchen. Ich hatte, was ich dachte, wäre der Beginn eines Python-Skripts, das mir den Wert für die ersten 5 Stationen zeigen würde (ich werde mich damit beschäftigen, die Station auszuwählen, die ich will, sobald ich das unter Kontrolle habe), aber es gibt keine Werte zurück. Hier ist das Skript:
# bikeShareParse.py - parses the capital bikeshare info page
import bs4, requests
url = "https://www.capitalbikeshare.com/data/stations/bikeStations.xml"
res = requests.get(url)
res.raise_for_status()
#create the soup element from the file
soup = bs4.BeautifulSoup("res.text", "lxml")
# defines the part of the page we are looking for
nbikes = soup.select('#text')
#limits number of results for testing
numOpen = 5
for i in range(numOpen):
print nbikes
Ich glaube, dass mein Problem (neben nicht verstehen, wie Code zu formatieren korrekt in einem Stapelüberlauf Frage) ist, dass der Wert für nbikes = soup.select('#text')
falsch ist. Ich kann jedoch nichts für "#text" ersetzen, um irgendwelche Werte zu erhalten, geschweige denn die, die ich möchte.
Bin ich das richtig? Wenn ja, was fehlt mir?
dank
, wenn Sie die Daten im XML-Format erhalten Sie versuchen, es mit xmletree. – bhansa
Danke! Es sieht so aus, als ob ein großer Teil meines Problems versucht hätte, BeautifulSoup für xml zu verwenden. Ich habe versucht, ein neues Skript zu erstellen, das im Grunde folgendes ist: 'import xml.etree.ElementTree als ET tree = ET.ElementTree ('https://www.capitalbikeshare.com/data/stations/bikeStations.xml') root = tree.getroot() print root' – mweinberg
Dies gibt die URL zurück. Der Versuch, tiefer in die Struktur mit Zeilen wie 'root1 = ET.fromstring ('station') print root1 'zu kommen, bringt mir Syntaxfehler. – mweinberg