簡體   English   中英

使用python將HTML代碼導入CSV

[英]Importing HTML code into CSV using python

我有一個包含數據的 HTML,我想將其引入 python 並放入 CSV 中。 我不確定哪個包和程序可以讓我完成這個,因為我嘗試了幾個不同的但沒有成功(bs4 和 urllib)。

這是 HTML 鏈接:

https://www.cmegroup.com/CmeWS/mvc/Volume/Details/F/8478/20200807/F?tradeDate=20200807

出於興趣,這是什么類型的 HTML 鏈接? 它似乎已經是 CSV 格式了。 如果這是一個愚蠢的問題,請道歉。 我也嘗試在互聯網上搜索文件類型。

我在此 Web 鏈接上嘗試了 URL 請求,但在嘗試發出請求時收到錯誤:

from urllib.request import urlopen as uReq

cme_url = "https://www.cmegroup.com/CmeWS/mvc/Volume/Details/F/8478/20200807/F?tradeDate=20200807"

#opening up connection
uClient = uReq(cme_url)

我已經在 StackOver 上搜索可以解決我的問題的示例,但沒有成功。 例如,這個例子沒有幫助,因為它已經在使用一個專門的 CSV 文件: 將 CSV 導入 Python

我非常感謝您的幫助。

您提供的 URL 中的數據格式幾乎是JSON

您的問題實際上是“如何將 Json 文件轉換為 CSV”。

Python本身可以解決這個問題,使用json庫

您可以通過幾個步驟從 URL 讀取 json 並將其轉換為 csv:

  • 使用requests獲取 json 文本並將其轉換為字典
  • 使用pandas將字典轉換為csv文件

我假設您只想要月份數據。

這是代碼:

import requests
import pandas as pd

url = 'https://www.cmegroup.com/CmeWS/mvc/Volume/Details/F/8478/20200807/F?tradeDate=20200807'
r = requests.get(url)
dj = r.json()
        
df = pd.DataFrame(dj['monthData'])
df.to_csv('out.csv', index=False)

輸出 (out.csv)

month,monthID,globex,openOutcry,totalVolume,blockVolume,efpVol,efrVol,eooVol,efsVol,subVol,pntVol,tasVol,deliveries,opnt,aon,atClose,change,strike,exercises
AUG 20,AUG-20-Calls,"10,007",0,"10,007",0,0,0,0,0,0,0,0,0,-,-,"9,372","-1,103",0,0
SEP 20,SEP-20-Calls,"1,316",0,"1,316",0,0,0,0,0,0,0,0,0,-,-,"2,899",47,0,0
OCT 20,OCT-20-Calls,115,0,115,0,0,0,0,0,0,0,0,0,-,-,614,32,0,0
NOV 20,NOV-20-Calls,16,0,16,0,0,0,0,0,0,0,0,0,-,-,68,6,0,0
DEC 20,DEC-20-Calls,13,0,13,0,0,0,0,0,0,0,0,0,-,-,105,-3,0,0
JAN 21,JAN-21-Calls,6,0,6,0,0,0,0,0,0,0,0,0,-,-,5,4,0,0
DEC 21,DEC-21-Calls,0,0,0,0,0,0,0,0,0,0,0,0,-,-,1,0,0,0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM