2017-11-23 1 views
0

私はPythonには新しく、 Webpageのテーブルからデータを取得し、リストに送信する必要があります。Python 3のhtmlテーブルデータ

私はすべてを試みた、と私が得た最もよいです:

f = urllib.request.urlopen(url) 
url = "http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-taxas-referenciais-bmf-enUS.asp?Data=11/22/2017&Data1=20171122&slcTaxa=APR#" 
soup = BeautifulSoup(urllib.request.urlopen(url).read(),'lxml') 
rows=list() 
for tr in soup.findAll('table'): 
    rows.append(tr) 

任意の提案ですか?

+1

Excelファイルをダウンロードするオプションがあります。 xlsxファイルを使用する方がよいでしょう。あなたは本当にhtmlから読む必要がありますか? – Diego

+0

いいえ、xlsxファイルはokです。 – ranthero

答えて

1

あなたはそれほど遠くありません!

まず、apt-get install python3-bs4(UbuntuまたはDebian上でPython 3を実行していることを前提とします)を実行してBeautifulSoup4という適切なバージョンのBeautifulSoup4をインポートしてください。

次に、tdの要素をhtml tableに分離し、データを少し消去します。例えば、「\ n」は役に立たないリストの最初の3つの要素を削除して、醜いを削除します。

import urllib 
from bs4 import BeautifulSoup 
url = "http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-taxas-referenciais-bmf-enUS.asp?Data=11/22/2017&Data1=20171122&slcTaxa=APR#" 
soup = BeautifulSoup(urllib.request.urlopen(url).read(),'lxml') 
rows=list() 
for tr in soup.findAll('table'): 
    for td in tr: 
     rows.append(td.string) 
temp_list=rows[3:] 
final_list=[element for element in temp_list if element != '\n'] 

私はあなたが正確に抽出するデータを知りません。今度はあなたのPythonリスト(ここではfinal_listと呼ばれます)で作業する必要があります!

希望です。

+0

ここで働いた。ありがとうございました。 – ranthero

1

ウェブページの最後にDowloadオプションがあります。手動でファイルをダウンロードすることができれば、あなたは行き​​たいです。

自動的に別の日付にアクセスしたいのですが、JavaScriptであるため、Seleniumを使用してxlsxファイルをPythonでダウンロードすることをお勧めします。

xlsxファイルでは、Xlsxwriterを使用してデータを読み取り、必要な操作を行うことができます。

+0

セレンをお寄せいただきありがとうございます。 – ranthero

関連する問題