你不應該使用str.find解析網頁,你應該使用一個HTML解析器像bs4但在這種情況下,是一種可以從json格式請求數據的api,與requests結合使得獲取數據變得非常簡單。
In [25]: import requests
In [26]: sym = "DVN"
In [27]: r = requests.get("http://finance.yahoo.com/webservice/v1/symbols/{sym}/quote?format=json".format(sym=sym))
In [28]: r.json()
Out[28]:
{'list': {'meta': {'count': 1, 'start': 0, 'type': 'resource-list'},
'resources': [{'resource': {'classname': 'Quote',
'fields': {'name': 'Devon Energy Corporation Common',
'price': '18.650000',
'symbol': 'DVN',
'ts': '1455915714',
'type': 'equity',
'utctime': '2016-02-19T21:01:54+0000',
'volume': '33916489'}}}]}}
In [29]: sym = "YHOO"
In [30]: r = requests.get("http://finance.yahoo.com/webservice/v1/symbols/{sym}/quote?format=json".format(sym=sym))
In [31]: r.json()
Out[31]:
{'list': {'meta': {'count': 1, 'start': 0, 'type': 'resource-list'},
'resources': [{'resource': {'classname': 'Quote',
'fields': {'name': 'Yahoo! Inc.',
'price': '30.040001',
'symbol': 'YHOO',
'ts': '1455915600',
'type': 'equity',
'utctime': '2016-02-19T21:00:00+0000',
'volume': '20734985'}}}]}}
In [32]: sym = "AAPL"
In [33]: r = requests.get("http://finance.yahoo.com/webservice/v1/symbols/{sym}/quote?format=json".format(sym=sym))
In [34]: r.json()
Out[34]:
{'list': {'meta': {'count': 1, 'start': 0, 'type': 'resource-list'},
'resources': [{'resource': {'classname': 'Quote',
'fields': {'name': 'Apple Inc.',
'price': '96.040001',
'symbol': 'AAPL',
'ts': '1455915600',
'type': 'equity',
'utctime': '2016-02-19T21:00:00+0000',
'volume': '35374173'}}}]}}
你可以通過使用比str.find更健壯的密鑰訪問你想要的任何數據。