2017-08-18 1 views
0

Auf der Seite https://bittrex.com/api/v2.0/pub/Markets/GetMarketSummaries Ich versuche, den Text zu analysieren, die ich mit Anfragen ziehen. Der Code, den ich den Text zu ziehen, bin mit hierParsing Text von Seite mit BS4

import requests 
from bs4 import BeautifulSoup 

link = 'https://bittrex.com/api/v2.0/pub/Markets/GetMarketSummaries' 
html = requests.get('https://bittrex.com/api/v2.0/pub/Markets/GetMarketSummaries').text 
print(html) 

ich einfach dem ganzen Text von der Seite ziehen kann, aber jetzt will ich es mit BS4 analysieren, so dass es nur die Anzahl der bestimmten Währung bekommt, wie ADX oder ADT. (Als "MarketCurrency": "ADX") Ich möchte es in der Lage sein, die Informationen wie High, Low, Volume und Last von der Seite zu finden, ohne den ganzen anderen Müll zu ziehen. So gebe ich zum Beispiel den Code für die gewünschte Währung ein, zB: ADX, und parst dann diesen Text und druckt nur die Zahlen für die Höhe, die Tiefe, die Lautstärke und die letzte des Tages. Danke für jede Hilfe!

+1

Diese API scheint JSON und nicht HTML zurückzugeben. BeautifulSoup ist ein HTML-Parser; Für JSON können Sie einfach den nativen Python-JSON-Parser verwenden: https://docs.python.org/2/library/json.html – Hamms

+0

Irgendwelche Gedanken zu beginnen, dann, Entschuldigung im ziemlich neu zu diesem –

+0

Start durch Parsing der Ergebnisse der API von JSON zu einem Python-Wörterbuch, das Sie hier mehr erfahren können http://introtopython.org/dictionaries.html – Hamms

Antwort

0

Eigentlich bist du ziemlich nah dran. Wie die Kommentare sagen, ist die Ausgabe nicht HTML, sondern JSON. Zum Glück hat Python einige schöne eingebaute Funktionen dafür. Der folgende Code analysiert die JSON-Textausgabe von der Site als natives Python-Wörterbuch (json_dict).

import requests 
import json 

link = 'https://bittrex.com/api/v2.0/pub/Markets/GetMarketSummaries' 
raw_json = requests.get('https://bittrex.com/api/v2.0/pub/Markets/GetMarketSummaries').text 
json_dict = json.loads(raw_json) 
print(json_dict) 
+0

danke dafür, das Problem, das ich jetzt habe ist, dass es nicht mehrere Wörterbücher alle mit den gleichen Variablen darin ist. ex wäre "BaseCurrency", die sich über die gesamte Seite wiederholt, was wäre der beste Weg, nur den einen einzufügen, den wir wollten? –

+0

Sie müssten den Wert des Schlüssels "result" ermitteln, bei dem es sich um eine Liste von Wörterbüchern handelt, die jeweils Marktzusammenfassungen enthalten. Dann müssten Sie diese Liste durchlaufen und jedes Wörterbuch bearbeiten, wie Sie möchten. Es funktioniert nur, weil Python-Listen und Wörterbücher erwartet werden. – somil