2017-08-18 18 views
0

ページでhttps://bittrex.com/api/v2.0/pub/Markets/GetMarketSummaries私はリクエストでプルするテキストを解析しようとしています。私はテキストを引っ張るために使用していたコードは、それが唯一の特定の通貨の番号を取得するように、私は簡単なように、今私はBS4でそれを解析したいページからすべてのテキストを引くことができますが、ここで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) 

ですADX、またはADTを使用します。 ( "MarketCurrency"として表示されます: "ADX") 他のすべての迷惑メールを引っ張らずに、ページから高、低、音量、および最後のような情報を見つけることができるようにします。例えば、私が望む通貨、例えばADXのコードを入力すると、そのテキストが解析され、高値、低値、量、そして最後の数字が印刷されます。助けてくれてありがとう!

+1

このAPIは、HTMLではなくJSONを返すようです。 BeautifulSoupはHTMLパーサです。 JSONの場合は、ネイティブのPython JSONパーサーを使用することができます:https://docs.python.org/2/library/json.html – Hamms

+0

これからのご意見は、申し訳ありませんが、これはかなり新しいです。 –

+0

APIのJSONからPython辞書に移動します。ここでは、http://introtopython.org/dictionaries.html – Hamms

答えて

0

実際、あなたはかなり近いです。コメントが言うように、出力はHTMLではなく、JSONです。幸いなことに、Pythonにはこのための機能が組み込まれています。次のコードは、サイトからのJSONテキスト出力をネイティブのPython辞書(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

これはありがたいですが、問題は現在、複数の辞書がすべて同じ変数を持っているということではありません。 exは "BaseCurrency"になります。これはページ全体を通して繰り返されますが、私たちが望むものだけを引き出す最良の方法は何でしょうか? –

+0

市場の概要がある辞書のリストであるキー "result"の値を取得する必要があります。次に、このリストを繰り返して、必要に応じて各辞書を処理する必要があります。それは単にPythonのリストとして動作し、辞書が期待されます。 – somil