是的,我的意見提出的建議是真正可怕的。 Shahin是對的。我要補充的是,你可以在json中得到相對容易處理的結果。爲了達到這一點,我花了很長時間。
>>> import requests
>>> parameter={"flowid":"b1610","start_date":"2017-08-02","period":"*","bmu_id":"ANSUW-1"}
>>> arg = 'https://www.bmreports.com/bmrs/?q=tablegen¶meter=%s' % str(parameter).replace("'",'"').replace(' ','')
>>> r = requests.get(arg)
>>> r
<Response [200]>
在r
的結果是json,這確實看起來很可怕。然而,在檢查時,它被證明是一系列嵌套字典。最終,如果你在洞穴中發現'item'
是48個字典的列表,你可以從中輕鬆提取任何你想要的東西。
>>> r.json()['responseBody']['responseList']['item'][0]
{'quantity': '1.414', 'marketGenerationBMUId': 'T_ANSUW-1', 'timeSeriesID': 'ELX-EMFIP-AGOG-TS-14842', 'powerSystemResourceType': 'Generation', 'resolution': 'PT30M', 'documentRevNum': '1', 'bMUnitID': 'T_ANSUW-1', 'registeredResourceEICCode': '48W00000ANSUW-1E', 'businessType': 'Production', 'settlementPeriod': '48', 'curveType': 'Sequential fixed size block', 'marketGenerationUnitEICCode': '48W00000ANSUW-1E', 'activeFlag': 'Y', 'nGCBMUnitID': 'ANSUW-1', 'processType': 'Realised', 'documentID': 'ELX-EMFIP-AGOG-17134615', 'marketGenerationNGCBMUId': 'ANSUW-1', 'settlementDate': '2017-08-02', 'documentType': 'Actual generation'}
>>> r.json()['responseBody']['responseList']['item'][47]
{'quantity': '1.088', 'marketGenerationBMUId': 'T_ANSUW-1', 'timeSeriesID': 'ELX-EMFIP-AGOG-TS-172', 'powerSystemResourceType': 'Generation', 'resolution': 'PT30M', 'documentRevNum': '1', 'bMUnitID': 'T_ANSUW-1', 'registeredResourceEICCode': '48W00000ANSUW-1E', 'businessType': 'Production', 'settlementPeriod': '1', 'curveType': 'Sequential fixed size block', 'marketGenerationUnitEICCode': '48W00000ANSUW-1E', 'activeFlag': 'Y', 'nGCBMUnitID': 'ANSUW-1', 'processType': 'Realised', 'documentID': 'ELX-EMFIP-AGOG-17134615', 'marketGenerationNGCBMUId': 'ANSUW-1', 'settlementDate': '2017-08-02', 'documentType': 'Actual generation'}
您可以設置items
到'item'
字典,然後從那裏走。
>>> items = r.json()['responseBody']['responseList']['item']
>>> items[0]['settlementPeriod']
'48'
>>> items[47]['quantity']
'1.088'
附錄:萬一你不知道我是如何得到這個網址的,那就是它。我使用了Chrome瀏覽器。我右鍵單擊任何元素,然後點擊'檢查'。然後,我點擊右側窗格中的「網絡」選項卡,然後點擊「XHR」。現在我點擊'查看'按鈕。正如你在下面的小屏幕視圖中看到的,我可以在表格中看到'?q = tablegen'。我右鍵單擊並將其複製到編輯器中供學習。
很可能你可以用硒做。如果您想要示例代碼,請輸入'at'符號並從下拉菜單中選擇我的名字以回覆此消息。請注意,您還可以安排以xml文件或csv的形式下載結果,這樣可以保存解析HTML。 –
@BillBell如果你能幫我一個很好的示例代碼。我沒有嘗試網站的下載選項,因爲這個想法是要獲得好幾個月的數據。 – Arraval